Build from source
You need a stable Rust toolchain (rustup).
git clone https://github.com/gilesknap/bobview
cd bobview
cargo build --release
cargo test --workspace
The binaries are in target/release.
Cross-build for the phone
From x86_64, with zig and cargo-zigbuild installed:
cargo zigbuild --release --target aarch64-unknown-linux-gnu.2.36
Build the browser version
./scripts/build-web.sh
writes dist/web. It needs the wasm32-unknown-unknown target and the
wasm-bindgen CLI matching the version in Cargo.lock. In a checkout,
bobview-server finds dist/web itself; --web DIR picks another.
Build these docs
The docs are an mdBook, with diagrams drawn by mdbook-mermaid. Install the versions CI uses (newer mdbook-mermaid needs a newer mdBook):
cargo install mdbook@0.4.40 mdbook-mermaid@0.15.0
scripts/build-docs.sh serve --open
This builds the Rust API docs into the book under api/, then serves it;
mdbook serve rebuilds and reloads the page as you edit. Run it again to
pick up changes to the API docs. scripts/build-docs.sh alone builds the
book into docs/book.
Checks CI runs
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo clippy -p bobview-pv -p bobview --target wasm32-unknown-unknown -- -D warnings
cargo test --workspace
How the docs are published
The Docs workflow builds the book and the API docs on every pull request.
On a push to main or a v* tag it publishes them to the gh-pages branch
in a folder named after the branch or tag, writes switcher.json (the list
of versions for the menu in the top bar) and leaves the other versions in
place. The site's root redirects to main/.