PyPI vs pypiserver
PyPI
pypi.orgpypiserver
github.comSide by side
| Figure | PyPI | pypiserver |
|---|---|---|
| Price from | $5/mo | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| Web | Yes | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 4 | 1 |
| Spec score · Package Registries | 8.8 (#6) | 8.3 (#11) |
| Authentication | PyPI requires two-factor authentication for web login and supports TOTP applications, WebAuthn security devices, and recovery codes. | Uploads can be protected with Apache htpasswd authentication, and API users can configure a custom authentication callable. |
| Package formats | PyPI releases can provide source archives and binary wheels for different operating systems and hardware. | It supports wheels, source distributions, eggs, and accompanying PGP signatures. |
| Purpose | PyPI is a repository of software for the Python programming language. | pypiserver is a minimal PyPI-compatible server for uploading and downloading Python packages with pip or easy_install. |
Plans
PyPI
- Community organizationFree
- Community OrganizationFree
- Company organization$5 a month
- Corporate Organization$5 a month
In their own words
PyPI
PyPI is a repository for software written in Python, available through its website and APIs. It helps users find and install packages shared by the Python community, while package authors publish projects and releases. A release may include source archives and binary wheels for different hardware, operating systems, and formats. APIs include RSS feeds for new packages and releases. PyPI is maintained by the Python Software Foundation and the Python community. Accounts require two-factor authentication, and a verified email address is needed to register a project or upload a release file. Trusted Publishing uses OpenID Connect short-lived identity tokens, with PyPI API tokens valid for 15 minutes. Default limits are 100 MB per file and 10 GB per project. Organizations provide shared profiles, teams, permissions, trusted publishing, and history. Community organizations are free; Company organizations cost $5 a month.
pypiserver
pypiserver is a minimal, self-hosted package index for uploading and downloading Python packages with tools such as pip and easy_install. It serves packages from regular directories, including wheels, bdists, eggs and PGP signatures, and scans those directories recursively. Packages can be uploaded with pip, setuptools, twine or pypi-uploader, or copied to the server with scp. Upload access can be protected with an Apache htpasswd file; API users can configure custom authentication callables. The maintainers advise password protection for uploads, and the documentation recommends a reverse proxy to provide HTTPS. pypiserver can run as a WSGI application, with documented integrations for Docker, nginx, Apache, gunicorn and Paste. It provides a health endpoint that returns HTTP 200 when the service is running, with an option to configure the endpoint. The current version supports Python 3.10+ and PyPy3. It is free at free and is listed for Linux, macOS, Windows, API and self-hosted use. Its API covers the operations needed by common package tools rather than the full PyPI API; documentation uploads are accepted but not saved to disk.