Remove the capnp compiler requirement from prerequisites (protobuf-src vendors protoc automatically). Update building.md for 9 crates and the justfile commands. Rewrite running-the-server.md with accurate v2 flags (--allow-insecure-auth, --sealed-sender, --plugin-dir, --ws-listen, --webtransport-listen, --federation-enabled, QPQ_PRODUCTION). Update docker.md to remove capnproto install from builder stage description. Delete bot-sdk.md and generators.md (removed crates). Update testing.md with the accurate 301-test breakdown across 9 crates and the AUTH_LOCK note for E2E tests. Update coding-standards.md dependency table to list prost as primary serialisation, capnp as legacy-only, and add opaque-ke.
2.5 KiB
Prerequisites
Before building quicproquo you need a Rust toolchain. No other system tools are required — Protobuf compilation is handled automatically at build time by the protobuf-src crate, which vendors the protoc compiler. Docker is optional and useful for reproducible builds and deployment.
Rust toolchain
Minimum supported Rust version: 1.77+ (stable)
quicproquo uses the 2021 edition and workspace resolver v2. Any stable Rust release from 1.77 onward should work. Install or update via rustup:
# Install rustup (if not already present)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Ensure you are on a recent stable release
rustup update stable
rustup default stable
# Verify
rustc --version # should print 1.77.0 or later
cargo --version
The workspace depends on several crates that use procedural macros (serde_derive, clap_derive, tls_codec_derive, thiserror, prost-derive). These compile during the build step and require no additional system libraries beyond what rustc ships.
No external compiler dependencies
In v2, all wire-format serialisation uses Protobuf via the prost crate. The quicproquo-proto crate's build.rs script drives code generation through prost-build, which in turn uses the protobuf-src crate to compile and use a vendored copy of protoc. You do not need to install protoc or any other system compiler.
The legacy Cap'n Proto schemas (schemas/) are still present for reference, but the v2 runtime and RPC framework use Protobuf exclusively.
Optional: Docker and Docker Compose
If you prefer to build and run quicproquo in containers, you will need:
- Docker Engine 20.10+ (or Docker Desktop)
- Docker Compose v2+ (the
docker composeplugin, not the legacydocker-composebinary)
docker --version # 20.10+
docker compose version # v2+
The docker/Dockerfile is a multi-stage build that does not install any extra system packages in the builder stage — protobuf-src takes care of the Protobuf compiler at compile time.
See Docker Deployment for full instructions.
Summary checklist
| Dependency | Required? | How to check |
|---|---|---|
| Rust stable 1.77+ | Yes | rustc --version |
protoc CLI |
No (vendored automatically) | n/a |
| Docker + Compose | No (container builds only) | docker --version / docker compose version |
Once all prerequisites are satisfied, proceed to Building from Source.