Building
Prerequisites
The just system
Honzo uses just as its primary command runner. Each surface (Rust, TypeScript, Demo, Docs) has its own script under Build/scripts/, invoked through just.
just # list all available commands
just setup # install all dependencies
just check # run all surface checks
just test # run all tests
just format # check Rust formatting
Surface commands:
just rust check # fmt + lint + test + wasm + no_std
just rust test # cargo test --workspace
just rust lint # cargo clippy --workspace
just rust fmt # cargo fmt --all
just typescript check # lint + typecheck + test + build
just typescript build # npm run build (TypeScript adapter)
just typescript wasm # wasm-pack build
just demo check # wasm + test + build
just demo build # wasm + vite build
just docs check # test + build (docmd)
just docs build # docmd build
Build individual crates
cargo build -p honzo-core # no_std parser (no alloc)
cargo build -p honzo-chunks # Chunk semantics
cargo build -p honzo-io # Builder, reader, stream
cargo build -p honzo-cli # CLI binary
cargo build -p honzo-convert # Format conversion
cargo build -p honzo-c # C FFI (requires diplomat)
WASM build
just typescript wasm
Output goes to Build/adapters/typescript/wasm/ and is automatically synced to Demo/src/wasm/.
To run wasm-pack directly:
cd Build/crates/honzo-wasm
wasm-pack build --target web --out-dir ../../adapters/typescript/wasm
TypeScript adapter
just typescript build
Or directly:
cd Build/adapters/typescript
npm install
npm run build
Demo
just demo build # production build
For development:
cd Demo
npm install
npm run dev
Documentation
just docs build
# Output in Docs/site/
For development:
cd Docs
npm install
npm run dev
Release build
cargo build --workspace --release
./target/release/honzo-cli --version
Test
just test
Or directly:
cargo test --workspace
Integration tests are in Tests/tests/. Test fixtures are in Tests/fixtures/.
Using the build scripts directly
Each surface script can also be invoked directly without just:
python3 Build/scripts/rust.py check
python3 Build/scripts/typescript.py setup
python3 Build/scripts/demo.py build
python3 Build/scripts/docs.py build