flowrs-engine/README.md
flowRS 2b6f30d348 flowRS engine, cut from flowRS f907e0756a7c
Built alone from an empty CARGO_HOME, its tests passed, and flowrsc checked, ran and exported a
document from the conformance corpus; the export built alone.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-10 08:54:33 -05:00

4.3 KiB

flowRS engine

The source of the engine behind flowRS: what reads, checks, runs and exports a graph without the editor, published as the continuity pledge promises (https://flowrs.openie.dev/docs/continuity/).

What this is. A snapshot of flowrs-core, flowrs-cli (flowrsc) and the crates they need, 32 in all, cut from flowRS's repository at commit f907e0756a7cb167f44d57913bce42db0d235795. It has no git history of its own. It builds alone: cargo build --locked from an empty cargo cache, then flowrsc check, flowrsc run and flowrsc app on a document under spec/conformance/ (some of those are invalid on purpose: spec/conformance/manifest.json says which).

What this is not. The editor (IDE), the server behind flowrs.openie.dev, the hosted agent and the firmware forge are not here. The promise about those is the pledge's fourth point.

Build and run

cargo build --locked -p flowrs-cli
target/debug/flowrsc check spec/conformance/flowrs/add-two-numbers.flowrs
target/debug/flowrsc run spec/conformance/flowrs/add-two-numbers.flowrs --tier t0
target/debug/flowrsc app spec/conformance/flowrs/add-two-numbers.flowrs -o /tmp/my-app

The toolchain is pinned by rust-toolchain.toml. flowrs-core's tests compile generated programs offline, so fetch once, then test:

cargo fetch --locked && (cd tools/test-crates && cargo fetch)
cargo test --locked -p flowrs-core -p flowrs-cli

The other crates' suites run in flowRS's own repository, and their fixtures are mostly not carried here (see ENGINE-CONTENTS.md). A test that needs something this snapshot does not carry is marked #[ignore], with the reason:

  • crates/flowrs-core/tests/provenance_edit_paths.rs, every_write_to_the_ides_graph_says_who_wrote_it: reads the editor's source, which is not published here
  • crates/flowrs-core/tests/platform_maths.rs, no_source_a_tier_runs_calls_the_platforms_maths: reads flowrs-neuro's source, which is not in this snapshot
  • crates/flowrs-core/tests/proof_table.rs, the_corpus_the_canary_and_flowrsc_prove_run_kani_with_the_same_arguments: compares flowRS's proof scripts, which are not in this snapshot
  • crates/flowrs-core/tests/proof_table.rs, the_table_reads_and_was_run_by_the_pinned_kani: compares flowRS's proof scripts, which are not in this snapshot
  • crates/flowrs-core/src/graph/widgets/capture.rs, a_capture_from_the_file_store_decodes_as_a_chain: reads capture files this snapshot leaves out
  • crates/flowrs-core/src/graph/widgets/capture.rs, the_generated_programs_agree_with_the_editor_for_every_decoder: reads capture files this snapshot leaves out
  • crates/flowrs-core/src/graph/widgets/mod.rs, every_widget_is_compiled_by_a_test_or_is_a_declared_seam: counts the two capture tests above as not compiling their widgets, and they read files left out
  • crates/flowrs-core/tests/document_spec.rs, every_document_in_the_repository_conforms: counts the documents of flowRS's whole repository, most of which are not here

Licences

Each crate carries the licence text its manifest names (Apache-2.0, or MIT OR Apache-2.0). spec/flowrs-document-2.md (and version 1.0.0, spec/flowrs-document-1.md) is under CC BY 4.0; its schemas and corpus are under the code's licence. What was left out of the snapshot, what was kept, and why, file kind by file kind, is ENGINE-CONTENTS.md. Third-party material is named in each crate's NOTICE, PROVENANCE.md and LICENSES/.

Issues and contributions

Issues: https://git.transaction.science/Transaction-Science/flowrs-engine/issues. Mirror: https://codeberg.org/Transaction-Science/flowrs-engine. Contributions are welcome if they benefit the project: read CONTRIBUTING.md.

The crates

  • dpb-plot
  • flowrs-app
  • flowrs-appshell
  • flowrs-boards
  • flowrs-capture
  • flowrs-cli
  • flowrs-connect
  • flowrs-core
  • flowrs-decode
  • flowrs-device
  • flowrs-drivers
  • flowrs-dsp
  • flowrs-hal
  • flowrs-iface
  • flowrs-instruments
  • flowrs-linux
  • flowrs-live
  • flowrs-math
  • flowrs-ml
  • flowrs-openui
  • flowrs-record
  • flowrs-registry
  • flowrs-results
  • flowrs-sandbox
  • flowrs-schemas
  • flowrs-sequence
  • flowrs-sim
  • flowrs-station
  • flowrs-tdms
  • flowrs-tls
  • flowrs-transport
  • flowrs-viz

2009 files are carried and 4182 left out of these crates' directories; ENGINE-CONTENTS.md says which and why.