{"id":50147651,"url":"https://github.com/pulseengine/relay","last_synced_at":"2026-07-02T05:01:26.975Z","repository":{"id":350978081,"uuid":"1208939062","full_name":"pulseengine/relay","owner":"pulseengine","description":"Formally verified flight software components for WebAssembly. Relay routes.","archived":false,"fork":false,"pushed_at":"2026-06-30T21:50:35.000Z","size":6694,"stargazers_count":0,"open_issues_count":11,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-30T23:22:22.051Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pulseengine.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/ROADMAP-AUTONOMOUS-FLIGHT.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-12T23:52:42.000Z","updated_at":"2026-06-30T21:40:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pulseengine/relay","commit_stats":null,"previous_names":["pulseengine/relay"],"tags_count":130,"template":false,"template_full_name":null,"purl":"pkg:github/pulseengine/relay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Frelay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Frelay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Frelay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Frelay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pulseengine","download_url":"https://codeload.github.com/pulseengine/relay/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Frelay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35033492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-24T06:00:59.195Z","updated_at":"2026-07-02T05:01:26.949Z","avatar_url":"https://github.com/pulseengine.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# relay\n\n**Formally verified stream-based component framework for safety-critical real-time systems.**\n\nRelay is a flight-software substrate: WIT-typed `stream\u003cT\u003e` components,\nfused statically at build time by [meld](https://github.com/pulseengine/meld),\nAOT-compiled to ARM/RISC-V by [synth](https://github.com/pulseengine/synth),\nrun on [Gale](https://github.com/pulseengine/gale) (verified Rust RTOS)\nvia WASM Component Model Preview 3 streams.\n\nTriple-track formal verification: **Verus** (SMT/Z3) for component\nlogic, **Rocq** for stream-routing correctness, **Lean** for\nscheduling theory and WCET. Traceability via\n[rivet](https://github.com/pulseengine/rivet).\n\nPart of the [pulseengine](https://github.com/pulseengine) toolchain.\n\n\u003e *Relay routes. Falcon flies.*\n\n## Two layers, one substrate\n\n| layer | what it is | crates |\n|---|---|---|\n| **cFS-DNA** (mission/ops) | A formally verified port of NASA cFS apps and core services. Drop-in replacements for the cFS framework that flew JWST, Artemis, OSIRIS-REx. | `relay-{sch, sc, sca, lc, hk, cs, ds, fm, hs, tbl, ci, to, md, mm, ccsds, cfdp}` |\n| **PX4-DNA** (control/dynamics) | A formally verifiable multicopter control cascade as `no_std` crates + WIT components: an **Invariant-EKF** estimator (SE₂(3)), **geometric SE(3)** attitude control (Lean-proven Lyapunov), an **ADRC** inner loop, control allocation, trajectory generation, a flight-mode FSM, and a backend-agnostic flight core. | `relay-{iekf, geo, adrc, mix-quad, traj, fsm, math, mavlink}`, `falcon-core` |\n\nComposition is through stream wiring via `meld` (build-time static\nfusion), not runtime topic-name lookup. No router thread, no\nshared mutable state.\n\n## falcon — the dual-DNA flight stack\n\nfalcon fuses cFS-DNA mission semantics with the PX4-DNA control cascade.\nThe verified cascade (**IEKF → geometric SE(3) → ADRC → mixer**) flies\nautonomous waypoint missions in **Gazebo Harmonic SITL**, runs bare-metal on\nan emulated **Cortex-M (STM32H743)**, and sits behind a backend-agnostic\nhardware-abstraction seam (`FlightBackend`) so the *same* `no_std` code runs\nagainst a simulator, real sensors, or a HITL link.\n\nCurrent focus (the `v1.16+` realism arc) hardens it against the physics a clean\nsim hides — wind, aerodynamic drag, IMU bias-instability, noisy/intermittent\nGNSS, barometer fusion, battery drain — each a CI-gated test plus the matching\ngz Harmonic realism. See [`CHANGELOG.md`](CHANGELOG.md) for the release history\nand [`docs/dossier/v1.0-practical-readiness.md`](docs/dossier/v1.0-practical-readiness.md)\nfor the honest capability-vs-gap matrix (SITL/proof/emulation-complete; the\nremaining gaps are on the hardware side of the seam).\n\n```sh\n# Fly an autonomous waypoint mission in Gazebo Harmonic SITL\nexamples/falcon-sitl-gz/tools/watch_mission.sh mission 55\n\n# Minimal MAVLink heartbeat demo (no sim required)\ncargo run -p falcon-hello -- --mode vehicle    # + --mode gcs in another shell\n```\n\n## Verification\n\nEvery component carries the overdo chain — see\n[Overdoing the verification chain](https://pulseengine.eu/blog/overdoing-the-verification-chain/).\nThe chain is reproducible per push via the rivet-driven gate:\n\n```sh\npython3 scripts/run-falcon-verification.py --markdown\n```\n\n```\n✅ Rivet verification gate — falcon\n3/3 passed\n| count |   |\n| Passed | 3 |\n| Failed | 0 |\n| Skipped (no steps) | 0 |\n```\n\nGitHub Actions posts the same Markdown as a sticky PR comment via\n`.github/workflows/verification-gate.yml`.\n\n## Build\n\n```sh\ncargo test --workspace        # all crate test suites\ncargo run -p falcon-hello -- --help\nbazel test //proofs/lean:...  # kernel-checked Lean proofs (Lyapunov, WCET)\nbazel test //...              # verus + rocq + lean verification tracks\n```\n\n## Traceability\n\nASPICE V-model artifacts under `artifacts/` are validated by rivet:\n\n```sh\nrivet validate                                          # link integrity\nrivet list --type feature                               # rollout milestones\nrivet list --type unit-verification                     # evidence\nrivet coverage                                          # requirement coverage\nrivet impact --since HEAD~1                             # change impact\n```\n\n## Layout\n\n```\nrelay/\n├── falcon/                # falcon-specific docs (README + release plan)\n├── crates/                # no_std + no_alloc guest components (cFS + falcon)\n├── host/                  # host services (relay-sb, -es, -evs, -time)\n├── wit/                   # WIT interfaces + worlds\n│   ├── interfaces/        # typed stream interfaces\n│   ├── components/        # per-component world specs\n│   └── worlds/            # cross-component compositions (relay-falcon.wit, ...)\n├── examples/              # runnable showcases\n│   ├── falcon-hello/      # minimal MAVLink heartbeat demo\n│   ├── falcon-sitl-gz/    # Gazebo Harmonic SITL bench (the flight stack)\n│   └── falcon-hitl-rfspoof/ # HITL GPS-spoof safety harness\n├── proofs/                # verus / rocq / lean source proofs\n├── artifacts/             # rivet artifacts (STKH, SYSREQ, SWREQ, SWARCH, SWDD, FEAT, FV)\n│   ├── sysreq/            # stakeholder + system requirements\n│   ├── swreq/             # software requirements (Verus properties)\n│   ├── swarch/            # software architecture decisions\n│   ├── swdd/              # detailed designs\n│   ├── features/          # release plan + capability tracking\n│   └── verification/      # FV-* with extractable `fields.steps`\n├── scripts/               # falcon-hello-demo, run-falcon-verification\n├── tools/                 # post_verification_comment + helpers\n└── .github/workflows/     # ci.yml, verification-gate.yml, release.yml\n```\n\n## License\n\nApache 2.0. See [LICENSE](LICENSE) for the full text.\n\n## Related repos\n\n[meld](https://github.com/pulseengine/meld) ·\n[kiln](https://github.com/pulseengine/kiln) ·\n[synth](https://github.com/pulseengine/synth) ·\n[loom](https://github.com/pulseengine/loom) ·\n[gale](https://github.com/pulseengine/gale) ·\n[sigil](https://github.com/pulseengine/sigil) ·\n[witness](https://github.com/pulseengine/witness) ·\n[rivet](https://github.com/pulseengine/rivet) ·\n[spar](https://github.com/pulseengine/spar) ·\n[wohl](https://github.com/pulseengine/wohl) — home supervision application of relay.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulseengine%2Frelay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpulseengine%2Frelay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulseengine%2Frelay/lists"}