Prerequisites
1
Install the Rust toolchain
2
Install build tools
cross, trunk, wasm-bindgen-cli, cargo-set-version, mdbook, and markdownlint-cli2.To install tools individually:3
Install wasm-opt
Trunk requires a compatible The script downloads binaryen version 128 into
wasm-opt binary in PATH to optimize the WebAssembly output..tools/wasm-tools/version_128/bin/.Building the backend
target/release/tuliprox.
Building the frontend
The frontend build also generates the documentation site and copies it into the frontend distribution:- Runs
bin/build_docs.shto build mdBook docs intofrontend/build/docs - Runs
trunk build --releaseto compile the Yew/WASM frontend intofrontend/dist - Copies
frontend/build/docsintofrontend/dist/static/docs
Building the documentation only
frontend/build/docs. To preview locally:
Full build (backend + frontend + docs)
./bin/build_fe.sh release to produce the complete set of web assets.
Build targets
- Linux x86_64 (musl)
- Linux aarch64 (musl)
- armv7 (Raspberry Pi)
- Windows x86_64
cross uses Docker to provide the correct cross-compilation toolchain for each target. Install it with cargo install cross.Building a Docker image from source
Build the full multi-stage Docker image from the repository root:scratch-final, alpine-final.
Helper scripts
The repository ships build helper scripts underbin/: