rpkispool-cli is a command-line utility to work with RPKISpool materialization files.
The goal of this project is to provide easy and convenient interface to work with RPKISpool materialization files as defined in draft-snijders-rpkispool-format.
- We prefer Python's standard library and a small, carefully selected set of external dependencies.
- We avoid unnecessary language features, frameworks, and abstractions.
Rationale: Keep the tool portable, simple to maintain, and reliable over a 10-year lifespan.
- Python 3.15 or higher
- astral-sh/uv (for development only)
- tar with zstd support (to generate filelists)
Following features are supported:
- Downloading materialization files (
downloadcommand) - Validating consistency of downloaded initspool and rpkispool files (
verifycommand) - Reporting repository coverage across vantage points (
coveragecommand) - Printing per-node ROA and ASPA change events from CCR differences (
eventlogcommand)
By default rpkispool-cli operates on yesterday's date (change with --date YYYYMMDD)
and stores files in work/archives (change with --output-dir DIR).
rpkispl is a short alias for rpkispool-cli, e.g. rpkispl verify.
The date can also be set with the RPKISPOOL_DATE environment variable (--date takes precedence). The Makefile loads an optional .env file, so copy .env.example to .env to pin the date for all make targets.
| Command | Documentation |
|---|---|
rpkispool-cli download |
doc/download.md |
rpkispool-cli verify |
doc/verify.md |
rpkispool-cli coverage |
doc/coverage.md |
rpkispool-cli eventlog |
doc/eventlog.md |
Typical session:
$ rpkispool-cli --date 20261103 download
$ rpkispool-cli --date 20261103 verify
$ rpkispool-cli --date 20261103 coverage vantage-pointsUse rpkispool-cli --help and rpkispool-cli <command> --help for all options.
The repository also has a Makefile with these as targets, see make download, make verify, make coverage.
With uv the tool installs into its own environment and rpkispool-cli is available on your PATH. uv fetches the required Python version if needed.
From GitHub (no clone needed), main by default:
uv tool install git+https://github.com/fvompe/rpkispool-cliPin a branch, tag or commit with @<ref>:
uv tool install git+https://github.com/fvompe/rpkispool-cli@main
uv tool install git+https://github.com/fvompe/rpkispool-cli@v0.1.0From a local clone:
git clone https://github.com/fvompe/rpkispool-cli.git
cd rpkispool-cli
uv tool install . # installs a copy of the current sources
uv tool install -e . # editable: the command runs the sources in this directoryRun once without installing:
uvx --from git+https://github.com/fvompe/rpkispool-cli rpkispool-cli --helpUpdate or remove:
uv tool upgrade rpkispool-cli
uv tool uninstall rpkispool-cliuv sync
uv run rpkispool-cli --help
To run tests, use
uv run pytest
The tests use a small fixture cut from real archives, see doc/fixtures.md.
- Fedor Vompe
- Job Snijders