holger-traits 0.6.7

Holger guards your artifacts at rest. May Allfather Odin watch over every bit.
docs.rs failed to build holger-traits-0.6.7
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: holger-traits-0.6.4

holger

Secure artifact server for airgap environments — serves Maven, Python, Rust, npm, NuGet, Go, Gem, Deb, Helm, Docker and more from znippy archives. Replaces Nexus/Artifactory where auditability and airgap compliance matter.

10,084,953 rust crate ops/sec · 32 cores · v0.7.0

Artifact type Single-core ops/sec 32-core ops/sec
rust crate 417,602 10,084,953
python wheel 313,469 7,740,871
java jar 283,015 7,307,041

Benchmark history (manual log)

Version Date Best ops/sec Machine
0.6.4 2026-05-29 10,084,953 (rust crate, 32-core) 32-core
0.7.0 2026-06-13 6,841,254 (rust crate, 32-core) 32-core

Benchmarks

(no bench history yet — run a benchmark to populate this section)

Tests

Every Rust test in the workspace (incl. #[tokio::test] async tests), grouped by the standard categories. Run with cargo test --workspace.

Unit tests (142)

file tests
agent/connector/world/src/pip.rs test_normalize_name_basic, test_normalize_name_edge_cases, test_archive_path, test_archive_path_normalization, test_parse_requirements_txt, test_parse_requirements_txt_invalid, test_parse_uv_lockfile
server/cli/src/main.rs holger_unit_renders_with_start_verb
server/lib/src/audit/arrow_ipc.rs roundtrips_events_through_a_segment, is_append_only_across_reopen, read_dir_on_missing_dir_is_empty
server/lib/src/audit/mod.rs action_wire_roundtrips, memory_log_collects_in_order, noop_log_is_inert
server/lib/src/auth.rs oidc_validation_caches_and_skips_repeat_userinfo_call, oidc_distinct_token_is_not_a_cache_hit, role_privilege_ordering_and_capabilities, rbac_is_off_until_policy_is_configured, role_resolution_explicit_then_default_then_least_privilege
server/lib/src/exposed/tls.rs extracts_common_name_from_cert, empty_chain_yields_no_cn
server/lib/src/grpc.rs stream_artifact_audits_download_hit_and_miss, list_artifacts_audits_list, list_artifacts_unknown_repo_audits_404, archive_endpoints_audit_list, list_repositories_audits_list
server/lib/src/lib.rs dev_pair_ron_parses_instantiates_and_wires
server/lib/src/proxy.rs fetch_returns_primary_hit_without_consulting_upstreams, fetch_falls_through_to_upstream_on_primary_miss, fetch_returns_none_when_all_miss, http_returns_primary_on_non_404, http_falls_through_to_upstream_on_primary_404, http_returns_404_when_all_404, proxy_name_and_format_delegate_to_primary, fetch_caches_upstream_hit_into_writable_primary
server/lib/src/repository.rs writable_archive_config_builds_writable_backend, archive_path_config_is_read_only_drift, rust_remote_config_builds_read_only_upstream
server/lib/src/upstream_rust.rs crates_io_defaults_build_expected_urls, custom_base_urls_are_honored, put_is_rejected_read_only, live_fetch_serde_from_crates_io
server/repository/file-oci/src/lib.rs version_probe, full_push_pull_roundtrip_session_upload, percent_encoded_digest_on_finalize, monolithic_upload, chunked_upload_via_patch, digest_mismatch_rejected, manifest_with_unknown_blob_rejected, unknown_blob_and_manifest_404, malformed_digest_400, traversal_in_image_or_reference_blocked, referenced_digests_scan, put_via_trait_requires_blobs
server/repository/file-rust/src/lib.rs sparse_path_test_1, sparse_path_test_2, sparse_path_test_3, sparse_path_test_n, sparse_path_into_tuple, put_then_fetch_round_trip, fetch_missing_returns_none, list_returns_all_put_artifacts, list_filters_by_name_substring, list_on_missing_base_dir_is_empty, config_json_uses_configurable_base_url, sparse_index_returns_real_checksums, sparse_index_missing_crate_returns_404, download_returns_real_crate_bytes, download_missing_crate_returns_404, streaming_hash_matches_in_memory_hash, cksum_cache_hits_and_invalidates_on_change
server/repository/znippy-composer/src/lib.rs test_new, test_format
server/repository/znippy-conda/src/lib.rs test_new, test_format, package_filename_is_name_version_build_tar_bz2
server/repository/znippy-deb/src/lib.rs test_new, test_format
server/repository/znippy-docker/src/lib.rs test_new, test_format
server/repository/znippy-gem/src/lib.rs test_new, test_format, gem_basename_drops_ruby_platform_keeps_native
server/repository/znippy-go/src/lib.rs test_new, test_format
server/repository/znippy-helm/src/index.rs parse_chart_yaml_extracts_fields, parse_chart_yaml_ignores_nested_and_requires_name_version, chart_meta_from_tgz_roundtrip, digest_is_stable_sha256, generate_index_lists_entry_with_digest_and_url, generate_index_groups_versions_under_one_chart
server/repository/znippy-helm/src/lib.rs test_new, test_format
server/repository/znippy-maven/src/lib.rs test_new_maven_repo, test_readonly, test_format
server/repository/znippy-npm/src/lib.rs test_new, test_format, parse_tgz_version_handles_hyphenated_name, parse_npm_wire_splits_scoped_tarball_and_packument
server/repository/znippy-nuget/src/lib.rs test_new, test_format
server/repository/znippy-package/src/lib.rs test_new, test_format
server/repository/znippy-python/src/lib.rs test_new, test_readonly, test_format, test_normalize_name
server/repository/znippy-rpm/src/lib.rs test_new, test_format
server/repository/znippy-rust/src/lib.rs new_repo_has_no_files, znippy_repo_is_readonly, has_archive_reflects_reader, config_json_uses_configured_base_url, sparse_index_returns_real_checksums_for_archived_crate, sparse_index_returns_404_for_absent_crate, sparse_index_with_multiple_versions_returns_all, download_returns_crate_bytes_from_archive, parse_crate_path_handles_hyphenated_names, list_with_no_reader_is_empty, writable_repo_put_then_serve_roundtrip, cargo_publish_stores_and_serves, cargo_publish_rejected_on_read_only_repo
server/ui/src/app.rs default_preset_is_os_resolved_and_roster_is_facett_presets, switching_preset_rethemes_the_resolved_palette, apply_publishes_the_coherent_legacy_palette_into_egui
server/ui/src/data.rs status_ok_populates_view_and_state_json, status_error_is_surfaced_not_loaded, repos_load_selects_first_and_preserves_selection_by_name, upload_enabled_tracks_selected_repo_writable, fetch_found_sets_size_and_does_not_leak_bytes_into_state_json, fetch_missing_is_not_found_not_error, fetch_transport_error_is_surfaced, put_rejected_on_read_only_repo, put_succeeds_on_writable_repo, combined_state_json_has_all_three_views, archive_lists_files_and_stats, archive_transport_error_is_surfaced, browse_lists_artifacts_for_repo, browse_unknown_repo_is_empty_not_error
traits/src/lib.rs znippy_type_ids_match_znippy_skeletons, format_str_roundtrips_aliases

Integration tests (47)

file tests
agent/cli/tests/integration_holger.rs test_holger_h2c_with_mannequin_nexus, test_oidc_auth_flow_with_mannequin, test_mtls_auth_validation_with_mannequin
agent/cli/tests/integration_latency_bench_twin.rs test_latency_tail_twin_small_scale
agent/cli/tests/integration_latency_tail.rs test_tail_latency_gc_pressure
agent/cli/tests/integration_nexus_bench_twin.rs test_nexus_load_twin_small_scale
agent/cli/tests/integration_nexus_load.rs test_nexus_load_with_real_artifacts
agent/cli/tests/integration_pip.rs test_pip_requirements_txt_to_directory, test_pip_uv_lock_to_directory, test_pip_airgap_and_push_to_mannequin
agent/cli/tests/integration_tar_zstd.rs test_tar_zstd_round_trip_with_mannequin, test_tar_zstd_archive_contents_valid, test_tar_zstd_push_to_holger_with_oidc
mannequin/tests/gui_robot.rs mannequin_gui_renders_three_system_nodes_with_badges, mannequin_gui_click_selects_node_and_state_reflects_it, mannequin_chart_renders_under_every_look_preset
mannequin/tests/smoke_serve.rs mannequin_serve_boots_and_listens
server/lib/tests/integration_oci_tls.rs oci_push_pull_over_tls, writes_blocked_without_auth_reads_open
server/lib/tests/unit_tests.rs test_parse_minimal_config, test_wire_holger, test_rust_api_fetch, test_list_repositories, test_fetch_unknown_repo_errors, test_maven_config, generated_proto_types_roundtrip
server/repository/znippy-conda/tests/plugin_read_view.rs conda_backend_serves_package_via_view_and_real_repodata
server/repository/znippy-gem/tests/plugin_read_view.rs gem_backend_serves_platform_gem_via_view_and_real_compact_index
server/repository/znippy-maven/tests/plugin_read_view.rs maven_backend_serves_snapshot_and_classifier_via_view
server/repository/znippy-npm/tests/plugin_read_view.rs npm_backend_serves_scoped_package_via_view
server/repository/znippy-python/tests/plugin_read_view.rs python_backend_serves_wheel_and_sdist_via_view
server/repository/znippy-rust/tests/integration_znippy_serve.rs test_znippy_archive_full_roundtrip, test_znippy_archive_smoke, test_znippy_archive_smoke_hermetic, test_all_types_download_pack_benchmark
server/repository/znippy-rust/tests/plugin_read_view.rs rust_backend_serves_hyphenated_prerelease_via_view
server/ui/tests/local_core.rs ui_data_round_trips_through_real_local_holger, browse_paginates_with_load_more
server/ui/tests/remote_grpc.rs ui_data_round_trips_over_real_grpc, bearer_token_path_is_wire_correct
server/ui/tests/robot_ui.rs browse_view_state_json_lists_seeded_artifacts, archive_view_state_json_exposes_tree_and_stats
xtask/tests/holger_matrix.rs holger_component_matrix_is_green, holger_matrix_heavy_mannequin_boot, holger_multicore_sanity_scales_with_cores, red_cell_shows_up_red_in_the_grid, testmatrix_feature_emits_functional_rows_into_the_sink

Doc tests (1)

file doc-tests
server/repository/znippy-conda/src/lib.rs 1

Dependency graph

workspace dependency graph