pypiron
An ultra-fast, rock-solid PyPI server.
- 100× faster than any other self-hosted PyPI server.
- 72% of malicious releases blocked out of the box.
- Add nodes against one bucket — no database, no coordinator.
- Supports cross-region and cross-cloud high availability.
- Works with local disk, AWS S3, GCP, and Azure.
- Web GUI with dashboard, package pages, and search.
- Vulnerability audit ranked by your org's installs.
- Health checks and Prometheus metrics built in.
- Comprehensively tested via fuzzing, chaos testing, deterministic simulation, model checking, real clouds, perf, and all 17 million files on PyPI.
Getting started
Run pypiron with uvx to get started quickly:
PYPIRON_ADMIN_PASS="$ADMIN" uvx pypiron serve
# serves http://localhost:8080/simple/ — point uv, pip, or poetry at it
Or with Docker:
docker run -p 8080:8080 -e PYPIRON_ADMIN_PASS="$ADMIN" ghcr.io/blackthorn-interstellar/pypiron:latest
Feature comparison
| Feature | pypiron | bandersnatch | pypiserver | pypicloud | devpi | proxpi | |
|---|---|---|---|---|---|---|---|
| Easy setup | ✅ | — | ✅ | — | — | ✅ | |
| Fast | ✅ | ✅ | — | — | — | — | |
| Private packages | ✅ | — | ✅ | ✅ | ✅ | — | |
| PyPI proxy | ✅ | — | — | ✅ | ✅ | ✅ | |
| Sync mirror | ✅ | ✅ | — | — | — | — | |
| Cooldown | ✅ | — | — | — | — | — | |
| Malware blocking | ✅ | — | — | — | — | — | |
| No dependency confusion | ✅ | — | — | — | ✅ | — | |
| Vulnerability audit | ✅ | — | — | — | — | — | |
| Scales, no database | ✅ | ✅ | — | — | — | — | |
| Multi-region failover | ✅ | — | — | — | ✅ | — | |
| Web GUI | ✅ | — | — | ✅ | ✅ | — | |
| Download stats | ✅ | — | — | — | — | — | |
| Storage | Disk | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| AWS S3 | ✅ | ✅ | — | ✅ | — | — | |
| GCS | ✅ | — | — | ✅ | — | — | |
| Azure Blob | ✅ | — | — | ✅ | — | — | |
Security
- Known malware never installs — the OSV malware feed is enforced within minutes, and a release cooldown covers the window before an advisory exists.
- Dependency confusion cannot start — a name is yours or PyPI's, never both.
- Only what you've approved installs — one approval list controls everything the server will serve.
- Air-gapped deploys — sync outside, carry it in, serve with no upstream at all.
- Vulnerability audit — every affected package you host or proxy, ranked by your org's installs.
Gauntlet testing
- Client compatibility testing: uv, pip, poetry, pdm, pipenv, hatch, flit, twine.
- Tested against all of PyPI. The parsers process all 17 million files ever uploaded to PyPI and match ground truth on each one.
- Chaos testing. We kill the server at every step of every write, kill fleet nodes mid-upload, and feed it truncated, corrupted, and hash-mismatched upstream responses. It converges to a consistent, installable state every time (crash sweep, fleet chaos, upstream faults).
- Exhaustive model checker. A model checker enumerates every interleaving of uploads, rebuilds, crashes, and same-filename collisions within its bounds, running the same decision functions the server ships.
- Continuous deterministic simulation testing. Deterministic simulation runs a whole multi-node fleet single-threaded on virtual time — on the order of a hundred thousand seeded crash/fault/restart schedules per night, every failure reproducible from an 8-byte seed (the simulator).
- Fuzzed nightly. Coverage-guided fuzzers hammer the parsers.
- Security audited by all frontier models — the same models that built it. All issues fixed.
Going further
- Deploying — a production server from standard cloud parts
- Private packages, the PyPI cache, air-gapped sync — how they combine behind one index URL
- Configuration — every flag and its
PYPIRON_*env var - Comparison & benchmarks — every alternative, and how the numbers were measured
- For AI agents — a decision guide, written for agents, by an agent
Contributing — Humans Need Not Apply
pypiron was built by AI coding agents from Anthropic, OpenAI, SpaceXAI, and Moonshot — and that's how it stays. All development is done by AI coders, for security and consistency: human-developed code is a security risk, and we don't accept it. Humans are welcome to open issues and contribute documentation.
License
MIT — see LICENSE.
Release files for pypiron 0.0.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pypiron-0.0.17.tar.gz | 9.3 MB | Details |
Built distributions (wheels)
Total release size: 143.5 MB
Release files / pypiron-0.0.17.tar.gz
| Download URL | pypiron-0.0.17.tar.gz |
|---|---|
| Size | 9.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
665edcd98e4808e7718fdf1ce9b124ba5a3e238e600343b4ff692c9c41c22881
|
|
BLAKE2b-256 checksum How to use checksums |
e623670b1932b8f44c5b5988419694a2a7417e8e4ac1aabd3dbcfc931985f35c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-win_arm64.whl
| Download URL | pypiron-0.0.17-py3-none-win_arm64.whl |
|---|---|
| Size | 8.4 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
643bcfb8d989d7388032ef9a423b52244195527cb026612d916dfb8ddbf03ab0
|
|
BLAKE2b-256 checksum How to use checksums |
5facb66f1c9be64d09b7c930b3a96895f81e396ff80b03e5e0e587bc6f1f581e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-win_amd64.whl
| Download URL | pypiron-0.0.17-py3-none-win_amd64.whl |
|---|---|
| Size | 8.9 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4c310640e88b9e4f9fc6d165858c7f71578ccf495d5a5053aea824c1eb5a85b8
|
|
BLAKE2b-256 checksum How to use checksums |
445d9b3fd89b1974607f6e5bc327a7fcf8ed96b3346814647050dd99954160a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-win32.whl
| Download URL | pypiron-0.0.17-py3-none-win32.whl |
|---|---|
| Size | 7.8 MB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
cfe65783fce3619e75b4f080aa0b22b2958547005f847bdcf47ced4bf0eb019d
|
|
BLAKE2b-256 checksum How to use checksums |
ed3e0b7658170a4a93abb7ef6a6776c8ee13129c3aa55db524775a0f88729b54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-musllinux_1_2_x86_64.whl
| Download URL | pypiron-0.0.17-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 9.0 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
346c9482a870c211e7273dcceeafceae3ec88986154da0c7a46b10dfffe57dd4
|
|
BLAKE2b-256 checksum How to use checksums |
b7856a9d02fbd587635e5ec576237d9ed6ebf3dccdf2cc79b9ab970a3448d815
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-musllinux_1_2_i686.whl
| Download URL | pypiron-0.0.17-py3-none-musllinux_1_2_i686.whl |
|---|---|
| Size | 8.4 MB |
| Tags | Linux musl 1.2+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
7ab3b5cbdb4a782bbc6941976b2ad2ac36438593b612656e55372ea5dda9e438
|
|
BLAKE2b-256 checksum How to use checksums |
9d5657fc10ade8cf72d1774767ddf62df1cbf04d79560f1419ef8fbc939dc5b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-musllinux_1_2_armv7l.whl
| Download URL | pypiron-0.0.17-py3-none-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 8.0 MB |
| Tags | Linux musl 1.2+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
90c2fb7a4a776a6768f347c2f5bf3bbf6ed5667cfd61e98a40362dfc710af97e
|
|
BLAKE2b-256 checksum How to use checksums |
76b4f8110f72729e9772a1eecf3518703767f9b7a3f54268803bfb09c8aa18ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-musllinux_1_2_aarch64.whl
| Download URL | pypiron-0.0.17-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
2fea95d593bdb016dd4cbbc8d1a0bb7bff7350090ec214f7d32bf62d28e19549
|
|
BLAKE2b-256 checksum How to use checksums |
8aac58daace7cd71684a440a7be82c2e4671936232fb61b4c74e031d395b6a50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-manylinux_2_31_riscv64.whl
| Download URL | pypiron-0.0.17-py3-none-manylinux_2_31_riscv64.whl |
|---|---|
| Size | 8.1 MB |
| Tags | Linux glibc 2.31+ RISC-V 64 Python 3 |
|
SHA-256 checksum How to use checksums |
3a0b7378ddf6debde4250be0f2c074318bdfa5aa6636b2389d4a484377b2cb1e
|
|
BLAKE2b-256 checksum How to use checksums |
622bfd7d0bd95b23d94c7e79d1066e2d193aac47daad2bb2ec0056b31f8f9e9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-manylinux_2_28_ppc64le.whl
| Download URL | pypiron-0.0.17-py3-none-manylinux_2_28_ppc64le.whl |
|---|---|
| Size | 8.7 MB |
| Tags | Linux glibc 2.28+ PowerPC 64-le Python 3 |
|
SHA-256 checksum How to use checksums |
f960326936fcba3e71d305f2bb8cd8440f9a0bb206d23cd88d5df61f9de60337
|
|
BLAKE2b-256 checksum How to use checksums |
563ea08edf692965c9071ab7e6a2f972ce1c21ab5a656bdbfc015813bd8699a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pypiron-0.0.17-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 8.8 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
7977c4b9b99a7ca05af7080373f374b2506461d90c1eebc03ebd3d70836c46ac
|
|
BLAKE2b-256 checksum How to use checksums |
aff83478ee0af83feff066664ee07c400ec109341541bb06da732cdfb296b711
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
| Download URL | pypiron-0.0.17-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl |
|---|---|
| Size | 8.4 MB |
| Tags | Linux glibc 2.17+ IBM System/390x Python 3 |
|
SHA-256 checksum How to use checksums |
e63d1146628fa84f0f61b6d82d3f335290b297cf78b922f307f7b1b6320c861b
|
|
BLAKE2b-256 checksum How to use checksums |
fe6be13bc4d47b16e50a281d0f3f34ac6b0853f7aefb9b959acca70aa7f1c309
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | pypiron-0.0.17-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 8.7 MB |
| Tags | Linux glibc 2.17+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
f1a926731e6615dbf225e7145455bd6e7796fc81dd65cd26782213997136dd2c
|
|
BLAKE2b-256 checksum How to use checksums |
dd00451d8d54296e8baa19ef2e45228031ede6563135d02e714b7bf1455788e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
| Download URL | pypiron-0.0.17-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl |
|---|---|
| Size | 8.0 MB |
| Tags | Linux glibc 2.17+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
edd0fbeb05f006abc99444e7da040f8eb973e7aca254c9b189c5e3652b95f68b
|
|
BLAKE2b-256 checksum How to use checksums |
65eea08d301b4057e05c1881abfafd6cac27b1e0880930a7d9ae17d7374ed4b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | pypiron-0.0.17-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
a697e05c4694ac6c27587700262a8803733ff5e86bc2720e71609c8dda99a5f3
|
|
BLAKE2b-256 checksum How to use checksums |
0af1d1a8ca803189dc6255791a7e95dec823380df059525dcfbe5bc453393239
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-macosx_11_0_arm64.whl
| Download URL | pypiron-0.0.17-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a40924ea1ccd5214bfda4d8a19a4c9d34d73b32effd77b5f520c011fa4e6de9b
|
|
BLAKE2b-256 checksum How to use checksums |
955f10011f26324f0375d0d0d0f48f01cb14ae4f2e084e2aaaa6e9aaa7212d04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / pypiron-0.0.17-py3-none-macosx_10_12_x86_64.whl
| Download URL | pypiron-0.0.17-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
7de8fa685aff3d22f7cae5b7e6e4ebe20d0d17b576174c10985ffb92a923cbc3
|
|
BLAKE2b-256 checksum How to use checksums |
3ce5992a0ebf21b49f80e52e6e415a43e7f9847e81cad9710bff43c3fceb0aa9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency log