Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rust API Reference

Full rustdoc-generated API documentation is available at /api/.

This page provides a high-level map of the six crates and their public API surface to help you find what you need.

Crate overview

ahu

License: Apache-2.0 / MIT

The bundle format library. Use this crate if you need to read, write, or verify ahu containers from your own Rust code.

Key public types and modules:

ItemDescription
BundleTop-level type for reading and inspecting an ahu bundle
BundleBuilderConstruct a new bundle with manifest, entries, and seal
ManifestCBOR-encoded bundle metadata (CA label, epoch, algorithm, timestamps)
EntryA single CertID-to-response mapping in the bundle
SealCryptographic seal binding the manifest and all entries
verify()Verify a bundle’s seal, digests, and sort order
mmapMemory-mapped bundle access for zero-copy serving

This crate is dual-licensed (Apache-2.0/MIT) so it can be used as a dependency without GPL obligations.

hoike-core

License: GPL-3.0-or-later

Shared types, configuration parsing, and protocol logic used by all other hoike crates.

Key public types and modules:

ItemDescription
ConfigParsed hoike.toml configuration
CaConfigPer-CA configuration ([[ca]] section)
ServerConfigServer mode, listen address, limits
StorageConfigBundle directory, state DB path, chain limits
GossipConfigSWIM gossip parameters (seeds, bind address, node name)
NoncePolicyNonce handling strategy (ignore, reject, echo)
CompletenessCompleteness model for unknown certificates

hoike-sign

License: GPL-3.0-or-later

The signing engine. Parses CRLs, produces OCSP responses, and seals them into ahu bundles.

Key public types and modules:

ItemDescription
SignerMain signing orchestrator – CRL + serials in, sealed bundle out
ResponseBuilderConstruct individual OCSP responses
CrlParserParse PEM or DER CRL files and extract revocation entries
SigAlgorithmEnum of supported signature algorithms (ECDSA, ML-DSA variants)
CertIdCompatCertID hash compatibility mode selection
EpochManagerTrack and enforce monotonic epoch numbering

hoike-server

License: GPL-3.0-or-later

The axum-based HTTP server that handles OCSP requests and serves pre-signed responses.

Key public types and modules:

ItemDescription
ServerTop-level server lifecycle (bind, serve, shutdown)
OcspHandlerRequest parsing, CertID extraction, bundle lookup
BundleStoreThread-safe bundle storage with hot-reload support
Routeraxum router configuration with OCSP and health endpoints

hoike-gossip

License: GPL-3.0-or-later

SWIM gossip protocol integration via foca for edge fleet coordination.

Key public types and modules:

ItemDescription
GossipRuntimeManages the foca SWIM protocol instance
BundleAnnouncementNotification payload when a new bundle is available
PeerStateTracked state for each peer in the gossip cluster
TransportUDP transport layer for gossip messages

hoike-cli

License: GPL-3.0-or-later

CLI entry points and argument parsing for the hoike and ahu binaries. This crate wires together all other crates behind the command-line interface.

You generally do not depend on this crate as a library. Its public API is the CLI itself, documented in the hoike CLI and ahu CLI reference pages.

Building the docs locally

Generate the full API documentation with:

cargo doc --workspace --no-deps --open

This builds rustdoc for all six crates and opens the result in your browser. The --no-deps flag skips documentation for third-party dependencies.

To build docs for a single crate:

cargo doc -p ahu --no-deps --open