You need the rust toolchain (rustc and cargo) installed. Then build and run.
# cargo build
# cargo test
# cargo run
You can use the erik_fetch tool to interact with an ERIK relay.
# cargo run --bin erik_fetch -- --fqdn <fqdn> --server <erik-relay> index
- Run server with in memory cache (epic binary)
- Get updates from a single RRDP source
- Serve index
- Serve partitions
- Serve binary objects
- Serve snapshot
- Serve Segment/-Index
- Use key-value store with overflow to disk (foyer, sqlite?)
- Support multiple RRDP sources
- Support rsync sources
- Erik Proxy mode: fetch from other Erik Relays and make available
- Get and serve Trust Anchors (validated self-signed certificates + tiebreaker)
- Use dedicated binary or mode?
- Validate TA
- Async / dispatch discovery and fetching repos
- Validate & tiebreak discovered manifest before inclusion in store
- Schedule re-fetching of repos
- Trigger validation on changes
- Validate TA tree
- Possibly: archive unused repos
- Possibly: back-off unresponsive repos
- Simple client binary for debugging (erik_fetch)
- Get index
- Get partition
- Get object
- Get snapshot
- Get segments