git-cache-proxy 0.1.10

Read-only caching proxy for Git: serves clones/fetches from an in-region mirror, pulling only deltas from upstream.
Documentation
# A read-only caching proxy for Git repositories.
[package]
name = "git-cache-proxy"
version = "0.1.10"
edition = "2024"
license = "Apache-2.0"
description = "Read-only caching proxy for Git: serves clones/fetches from an in-region mirror, pulling only deltas from upstream."
repository = "https://github.com/rolandjitsu/git-cache-proxy"
keywords = ["git", "cache", "proxy", "ci", "mirror"]
categories = ["command-line-utilities", "development-tools"]

[[bin]]
name = "git-cache-proxy"
path = "src/main.rs"

[dependencies]
anyhow = "1.0"
axum = "0.8"
bytes = "1"
clap = { version = "4.5", features = ["derive", "env"] }
flate2 = "1"
# default-features off drops the `hashbrown` backend (and its allocator-api2 /
# foldhash / equivalent deps); the std `HashMap` backend is plenty for this.
lru = { version = "0.18", default-features = false }
prometheus = { version = "0.14", default-features = false }
# LFS objects use an HTTPS API; reqwest fetches them over rustls+ring (no native-tls,
# so the binary stays statically linked). serde_json rewrites the batch JSON; sha2
# verifies a fetched object against its oid before caching.
reqwest = { version = "0.12", default-features = false, features = [
    "rustls-tls-native-roots",
] }
serde_json = "1"
sha2 = "0.10"
subtle = "2"
tokio = { version = "1", features = [
    "macros",
    "rt-multi-thread",
    "net",
    "process",
    "io-util",
    "fs",
    "signal",
    "sync",
    "time",
] }
tokio-util = { version = "0.7", features = ["io"] }
tower = { version = "0.5", features = ["limit"] }
tracing = "0.1"
tracing-appender = "0.2"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }

[dev-dependencies]
tempfile = "3"
tower = { version = "0.5", features = ["util"] }