Skip to main content
Version: Nightly 🚧

Glossary

Glossary of terms used in the Lingua Franca (LF) documentation.

LF File​

A source file with the .lf extension, representing a Lingua Franca (LF) program.

Library File​

An LF file containing one or more reactors intended for reuse, designed to be imported into other LF files.

Package​

A collection of LF source files and directories, along with a Lingo.toml manifest file that defines the package configuration. Every package must include an src/ directory containing the LF source files.

Package Manager​

A software tool that automates the installation, configuration, and management of packages. In the LF ecosystem, the lingo package manager is used to manage LF packages and dependencies.

Package Root​

The package root is the top-level directory of a package where both the Lingo.toml file and the src/ directory reside.

Project​

Another term for a package that is under development. Each LF file is assumed to reside in a package, meaning it is located somewhere in the file system in a directory called src, in some directory that serves as the (package root)[#package-root].

Project Structure​

The structure of an LF project should follow the directory layout below:

├── .
│ ├── bin/ # Directory for storing binary executables
│ ├── build/ # Directory containing packages installed by the Lingo Package Manager
│ │ ├── lfc_include/ # Directory for storing reusable reactors
│ │ └── <Installed Package>/ # Directory containing the installed package
│ ├── include/ # Directory for storing header files
│ ├── src/ # Directory containing LF source files
│ │ ├── lib/ # Directory for storing reusable reactors
│ │ │ ├── Input.lf # Ex: reactor capturing external inputs (e.g., Microphone, Camera)
│ │ │ └── ComputerVision.lf # Ex: reactor performing computer vision tasks (e.g., object detection, face recognition)
│ │ └── Main.lf # Ex: main source file
│ ├── fed-gen/ # Directory for storing generated code for federated programs
│ ├── src-gen/ # Directory for storing generated code for single-process programs
└── └── Lingo.toml # Configuration file for Lingo Package Manager
  • Mandatory Directories and Files:

    • src/: This folder must contain at least one .lf source file.
    • Lingo.toml: This is the required configuration file.
  • Automatically Generated Directories:

    • bin/: Created during the build process to store binary executables.
    • build/: Generated automatically when installing packages managed by the Lingo Package Manager.
    • include/: Autogenerated to store header files.
    • src-gen/ (or fed-gen for federated programs): Autogenerated to store generated code.
  • User-Created Directory:

    • src/lib/: This folder is for library files and should be created by the user as necessary.

This directory structure is essential for enabling the Package Explorer feature in the VS Code Extension, streamlining project management and development processes.