collin/anvil
feat/web-edit-attachments-usage / CLAUDE.md
RenderedSource
anvil
A minimal, self-hosted git forge in Rust, built on gix (gitoxide).
Design rules
- Pure gitoxide — never the git binary. The product (server, CI broker,
mirroring, deploy image) must not invoke or depend on a
gitexecutable. When gix lacks a capability, implement the protocol on gix plumbing instead of shelling out — e.g. gix can't push yet, soanvil-git/src/push.rsspeaks the send-pack wire format itself (withgitserver-corecovering the server side). Tests may use the git CLI, but only as a fixture/interop check, never on the code path under test.
Dev setup: git config core.hooksPath .githooks — the pre-commit hook runs
cargo +nightly fmt (nightly, for the unstable options in rustfmt.toml),
cargo sort-derives (cargo install cargo-sort-derives), and
cargo clippy --workspace --all-targets -- -D warnings.
Current status, resume notes, the agreed next steps (a/b/c), and the roadmap live in the TODO. Read it first:
@TODO.md