Files
quicproquo/docs/src/getting-started/prerequisites.md
Christian Nennemann f7a7f672b4 docs: update getting-started and contributing docs for v2
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.
2026-03-04 22:00:23 +01:00

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 compose plugin, not the legacy docker-compose binary)
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.