holger-agent-lib — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: The agent's airgap/export/push engine — moves artifacts between registries and znippy/tar archives over the
ConnectorTraitabstraction. - Does: Re-exports the three connectors (Nexus, Artifactory, World/crates.io+PyPI) and their auth helpers, and implements the transfer
operations(moduleoperations.rs): pulling assets from a source connector and packing them into a.znippy(viaznippy_compress::stream_packer::StreamCompressor) or tar.zst, or pushing to a target. The SAVE stage uploads through a bounded no-barrier in-flight pool (znippy_zoomies::gatling::io,UPLOAD_CONCURRENCY = 8) so per-request latency overlaps; upload failures are counted, not fatal. Untrusted.tar.zstreads are capped per-entry (MAX_TAR_ENTRY_BYTES = 8 GiB, M7 decompression-bomb guard). - Key deps:
connector-nexus,connector-artifactory,connector-world,traits,znippy-compress+znippy-common(host-decompressors),znippy-zoomies(async gatling pool, sibling path dep),reqwest,tokio,tar,zstd. - Shape: lib, 2 files (
lib.rsre-exports,operations.rsthe logic). - Observed role in the workspace: Backs
holger-agent-cli; also pulled (optionally) by bench-scenarios comparison benches and by holger-server-ui's Tool #2 migrate/suck pane and demo mode.
Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: