Prerequisites
  • Rust 1.75+ (install via rustup)
  • Node.js 18+ (for WASM/demo build)
  • just (command runner)
  • wasm-pack (for WASM target)
just setup

This installs all toolchain dependencies: Rust targets, wasm-pack, npm packages, and diplomat-tool.

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