Frontend Labs
⋯

0.4 The Rust labs: what you build for each guide in the series

All labs live in one Cargo workspace, one binary per lab:

cargo new --vcs none rust-labs && cd rust-labs
mkdir -p src/bin                       # each lab is src/bin/<name>.rs
cargo run --bin wordfreq -- README.md  # run one lab
Series guide Rust labs in this guide
OS & Linux rawsys (Ch 39), supervisor and graceful SIGTERM (40), atomicwrite (41), rps from /proc (42), countalloc (43), minibox namespace container (44)
Networking (TCP/IP) echo threaded and async (32), length-prefixed framing (32), udpping (32), dnsq raw-bytes DNS client (45), tinyhttp (46)
Security from Zero seal AES-256-GCM (52), Argon2id password store (52), HMAC webhook verify (52), authsvc JWT service (56)
Security in Depth safefetch SSRF guard (48), smuggling-safe proxy (50), fuzz target (54), cargo deny policy (55)
HTTPS Lifecycle api production Axum server (47), retries with idempotency keys (48), TLS/mTLS servers (49), revproxy (50), lifecycle whole-series trace (64)
Go guide lru (27, compare Go §26), chat (38, compare Go §38), kv (63, compare Go §56)
C guide pool thread pool (37, compare C §23.1), FFI to a C library (34), kv RESP server (63, compare C §43)

The crates used across the guide (versions as written):

[package]
name = "rust-labs"
version = "0.1.0"
edition = "2024"

[dependencies]
anyhow = "1"
thiserror = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["full"] }
bytes = "1"
axum = "0.8"
tower-http = { version = "0.7", features = ["timeout", "limit", "trace"] }
hyper = "1"
hyper-util = "0.1"
http-body-util = "0.1"
tracing = "0.1"
tracing-subscriber = "0.3"
rustls = "0.23"
tokio-rustls = "0.26"
rcgen = "0.14"
aes-gcm = "0.11"
argon2 = "0.6"
hmac = "0.13"
sha2 = "0.11"
subtle = "2"
zeroize = "1"
rand = "0.10"
jsonwebtoken = { version = "11", features = ["rust_crypto"] }
libc = "0.2"
nix = { version = "0.31", features = ["process", "signal", "sched", "mount", "fs", "hostname", "feature"] }
memmap2 = "0.9"
signal-hook = "0.4"

[dev-dependencies]
proptest = "1"

Generated from real-life-rust-guide.md · 8 Oct 2026 16:36