Building from Source
Prerequisites
Install the Rust toolchain via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Meridian targets stable Rust (edition 2021). No nightly features are required for the proxy itself (nightly is only needed for fuzzing).
Build Commands
# Debug build (faster compilation, slower runtime)
cargo build
# Release build (optimized)
cargo build --release
# Build just the proxy binary
cargo build --release -p meridian-proxy
The release binary is at target/release/meridian.
Workspace Structure
Meridian is organized as a Cargo workspace with three crates:
elote/
meridian-core/ # Library — all domain logic
meridian-proxy/ # Binary — orchestration shell
meridian-bench/ # Benchmarks — Criterion suites
fuzz/ # Fuzzing harness — libfuzzer targets
docs/ # This book
Rule: core owns all logic. The proxy crate is a thin orchestration shell. Domain logic (parsing, load balancing, circuit breaking, filtering) lives in meridian-core.
Verify the Build
# Run all tests
cargo test --workspace
# Check for warnings
cargo clippy --all-targets -- -D warnings
# Check formatting
cargo fmt --check
All three checks must pass before any commit.