anvilsign in

collin/anvil

main / vendor / gitserver-core / VENDOR.md

RenderedSource

Vendored: gitserver-core

This is a vendored, modified copy of the gitserver-core crate from WJQSERVER/gitserver, which implements the server side of the git wire protocol (pkt-line, protocol v2 ls-refs / fetch / upload-pack, and receive-pack) on top of gix — the piece gix itself does not provide.

  • Upstream commit: 3cec05b02eea3220c67782e4d9d0404d8b001aa3 (2026-04-27), which is still upstream's main HEAD as of 2026-08-25 — nothing to pull. The newest upstream tag, v0.0.3, is older than this commit.
  • License: MPL-2.0 (see LICENSE); upstream MIT material noted in UPSTREAM-LICENSE / NOTICE. MPL is file-level copyleft: modifications to these files stay MPL, but anvil as a whole may carry its own license.

Why vendored

We vendor rather than depend on crates.io so we can (1) bump gix from the upstream-pinned 0.80 to the workspace version (0.87) and keep it in lockstep with the rest of anvil, and (2) modify the protocol code as anvil-git evolves.

The gix gap only widens: upstream has been on 0.80 since April, so each gix bump here is ours to port, and checking upstream first is cheap but has so far never produced anything.

anvil-git wraps this crate behind its own interface so the dependency can be incrementally replaced with an upstream-shaped, gix-native implementation.

Local modifications

  • Cargo.toml: standalone manifest using the anvil workspace's gix (0.87) and gix-pack (0.74) instead of upstream's pinned 0.80 / 0.67.
  • Cargo.toml: [lints] workspace = true, so the vendored crate is held to anvil's lint configuration like any other member.
  • Source changes required by the gix version bump are recorded in git history.