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

94 lines
4.3 KiB
Markdown

# flowRS engine
The source of the engine behind [flowRS](https://flowrs.openie.dev): 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
```sh
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:
```sh
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.