2 ecosystems · one binary
Fast as the falcon, sealed as the pyx.
peryx is one blazing-fast, MIT-licensed vault for a wide range of ecosystems. It caches upstream indexes, hosts the packages you publish, and merges the two so your own artifacts override upstream. One Rust binary, zero-config on a laptop: the first pull runs at upstream speed while the cache fills, every one after comes from your own disk.
$ peryx serve
peryx listening on 127.0.0.1:4433 · 6 indexes
$ uv pip install --index-url \
http://127.0.0.1:4433/root/pypi/simple/ requests
Installed 5 packages in 41ms
$ docker pull 127.0.0.1:4433/dockerhub/library/alpine
Downloaded from cache in 0.3s
- Read-through cache Proxies pypi.org, Docker Hub, or any upstream index or registry. A cache miss streams upstream bytes to the client while writing them aside, so the first pull pays no penalty; every later one comes from disk. Each artifact (a wheel or an image layer) verifies against its sha256 and is stored once, content-addressed, however many projects pull it.
- Private packages that shadow upstream Publish over each ecosystem's own upload API into virtual indexes, where
your
utilsbeats theutilssomeone registered upstream and your image beats the one on the public registry. One URL, no second index to configure, no dependency confusion. - One model, every ecosystem The same cache/host/merge roles sit behind every packaging format peryx speaks, each one a driver that owns its wire protocol and artifact rules. Adding a format is a driver, not a rewrite. See ecosystems for what each speaks today.
- Honest freshness Upstream
Cache-Controldecides how long a page serves from cache; a background sweep catches upstream changes even for things nobody is requesting; outages degrade to stale-but-working. Concurrent misses for one page, wheel, or layer share a single upstream fetch. - Built to operate One TOML file, Prometheus metrics, per-file usage drill-down, structured logs, a live web UI, and
a data directory you can back up with
cp. Optional TLS or automatic Let's Encrypt certificates. No JVM, no database server, idle RAM in the tens of MB. - Proven with real clients The test suite drives each ecosystem's real clients against a live peryx, holds 100% line and function coverage, passes the OCI distribution-spec conformance suite, and the performance numbers come with the exact commands that produced them.
Documentation
Core
Install, configure, and operate peryx: the CLI, the index model, TLS, logging, monitoring, and the web UI — shared by every ecosystem.
PyPI
The Python ecosystem: what cached, hosted, and virtual mean for PyPI, the Simple API wire protocol, and pip/uv/twine config.
OCI
The container ecosystem: what cached, hosted, and virtual mean for OCI/Docker registries, the /v2/ distribution protocol, and docker/podman/crane config.