Work from the repository root with .NET SDK 10+, just,
Node.js and uv. BEAM commands use
mise to select the OTP and Rebar versions in mise.toml.
dotnet tool restore
uv sync
mise trust
mise install
just check # Type-check library and tests
just build # Generate Erlang and compile the BEAM library
just format # Format F# source
just format-check # Verify formatting, the same check CI runsThe same behavioral suite is compiled to all targets. Tests use Scriptorium.
just test-native
just test-js
just test-python
just test-beam
just test # All four targetsFor local compiler work, just dev=true test-beam uses the sibling ../Fable
checkout instead of the pinned released compiler. The same switch applies to
other Fable compilation recipes.
The ordinary BEAM benchmark compares execution costs against a release baseline, including cancellation-token creation. Run it when changing the shared builder or its native execution helpers.
Timeflies gives each letter an actor and fans out mouse positions to produce a trailing animation.
| Target | Command | UI |
|---|---|---|
| BEAM | just run-timeflies |
Cowboy WebSocket server |
| Python | just run-timeflies-python |
tkinter |
| JavaScript | just run-timeflies-js |
React/Feliz and Vite |
just pack creates the single Fable.Actor NuGet package using the version in
CHANGELOG.md. It includes the unified Actor factories, command descriptions and lifetime
capabilities, their assembly and the Fable source payload.
Controller design and runtime regressions are documented in Maintainer notes.