The project includes a Nix flake with a complete dev shell. If you have Nix with flakes enabled:
# Enter the dev shell (or use direnv with the included .envrc)
nix develop
# Build via Nix
nix buildThe dev shell provides the stable Rust toolchain (cargo, clippy, rustfmt, rust-analyzer), plus cargo-nextest, cargo-llvm-cov, cargo-deny, taplo, and typos.
Requires a stable Rust toolchain. Install via rustup.
You'll also need these tools (provided automatically by the Nix dev shell):
- just - command runner
- cargo-nextest - test runner
- cargo-llvm-cov - code coverage
- cargo-deny - dependency auditing
- taplo - TOML formatter/linter
- typos - spell checker
- actionlint - GitHub Actions linter
After cloning, configure git hooks:
just setupThis sets up:
- pre-commit - runs
just fmtto check formatting - pre-push - runs
just checkfor full lint + test suite
A justfile wraps all common commands:
just check # Run all checks (clippy, test, fmt, lint)
just test # Run tests
just clippy # Run clippy
just check-fmt # Format check
just fmt # Auto-format everything (Rust, TOML, Nix)
just lint # Run linters (TOML, typos, nix-fmt, actionlint)
just coverage # Generate lcov coverage report
just coverage-html # Generate HTML coverage report
just check-typos # Spell check
just lint-toml # TOML lint- TOML -
taplo - Nix -
alejandra
AI assistants are fine to use. You're responsible for every line you submit - correctness, licensing, review. If you used AI to generate code, read and verify it yourself before opening a PR. Unreviewed AI output will be declined.