holger-traits 0.6.10

holger's shared vocabulary: ArtifactId, RepositoryBackendTrait, ZnippyPlugin discriminants, and ArtifactFormat — including `ArtifactFormat::home()`, the format→crate map that answers which crate serves PyPI when grepping cannot.
Documentation

Holger guards your artifacts at rest

Immutable artifact repository in pure Rust.

GATLING — one all-core engine · zero rayon · zero-copy · ~11/12 cores

  • Airgap: transfer from internet, Nexus, Artifactory → immutable znippy archive
  • Versioned: atomic transactions, content-addressed (Blake3), O(1) file random access
  • Extreme performance: Apache Arrow zero-copy, multi-core parallel I/O
  • Zero dependencies: no OS packages, no shell, no Python — 100% Rust (even decompressors rewritten from C)
  • Embeddable: runs on bare-metal/OS-free devices, 2 MB RSS

Biggest gap — p50_ms: holger leads naive by 785.3× (0.15 vs 118.82).

v0.1.0 · oden · 32 cores · 2026-07-23

workload ops_per_sec plans_per_sec records_per_sec p50_ms p99_ms p999_ms iters metadata_mbs served_mbs mean_ms
holger 181863 761.95 3.8097M 0.15 0.46 1.10 2000 348.79 108.43 0.17
artifactory 20578 1.10 6.11 37.63 12.24 1.53
dryrun 100
naive 8.38 0.0419M 118.82 131.88 24 3.84 119.35
nexus 15832 1.40 7.96 62.64 10.60 2.00

holger vs Nexus vs Artifactory, served over HTTP on all sides, measured identically. Fair hardware — no throttled rival: each JVM competitor gets every core on the host and ~75 % of its RAM as a fair JVM heap; holger runs in-process on the same cores. The host and core count these numbers were taken on are stamped in the table header above and in the provenance block below — never assume a number from one host is comparable with one from another. Full method + every metric: README-full.

Where these numbers come from

v0.1.0 · oden · 32 cores · 2026-07-23

host oden · 32 cores
version 0.1.0
measured 2026-07-23
arms 16
tests 16/16 passed
publishable yes

The mashup and bench_status tables above are a static snapshot of the v0.1.0 run (the installed nornir predates those two docs render sections). The rest of this page is still rendered by nornir docs render holger; refresh these two by hand at release time, or restore their nornir:gen blocks once a newer nornir is on PATH.

Read the real docs

Development setup

The generated docs in this repo are kept in sync by git hooks in .githooks/. Point git at them once per clone:

git config core.hooksPath .githooks

On every commit that stages Rust source, a Cargo.toml, or .nornir/ai-context.toml, the pre-commit hook regenerates the AI-context packs (docs/ai-context.md + docs/ai-context-full.md) with kvasir and stages them, so they never drift; it also re-renders README/CHANGELOG via nornir. A missing tool warns and skips; a kvasir validation error aborts the commit. kvasir is taken from PATH (install it with cargo install --path ../kvasir) or a sibling ../kvasir release build.