Why FlightLang
Readable mission spec
State machines instead of ad-hoc scripts. Preflight checks, deadlines, transitions โ all explicit.
Units & types
Unit-aware numbers (m
, mps
, deg
, ms
) with simple checks.
Multi-backend
Generate Python for simulation or Rust for controllers. PX4/ROS 2 stubs included.
Open & extensible
Add new actions, events, and backends without changing mission specs.
Install (Python)
# from your project dir
python -m flightlang.cli run examples/survey.fl
# or generate runnable Python
python -m flightlang.cli build examples/survey.fl -o out.py
python out.py
Generate Rust
python -m flightlang.cli build examples/survey.fl --backend rust --outdir mission_rs
cd mission_rs && cargo run
How it works
1) Parse
Lexer & parser build an AST from your
Lexer & parser build an AST from your
.fl
.2) Check
Simple unit/type checks catch mistakes early.
Simple unit/type checks catch mistakes early.
3) Generate
Emit Python or Rust with a tiny runtime or stubs.
Emit Python or Rust with a tiny runtime or stubs.
4) Run
Simulate or compile; integrate with PX4/ROS 2 later.
Simulate or compile; integrate with PX4/ROS 2 later.
Join the project
We welcome issues, discussions, and PRs. See the roadmap for where help is most needed.
Contribute on GitHub โ