ext_http_server
An extended version of Python's http.server that turns a simple static file
server into one supporting HTTPS, HTTP Basic authentication, server-to-client
rate limiting, and resumable downloads via HTTP Range requests.
Requirements
ext_http_server supports Python 3.10 through 3.14.
Installation
Install the ext_http_server command with uv:
uv tool install ext_http_server
Generate a certificate
Generate a self-signed certificate, writing the private key and certificate
together into cert.pem (the single file --cert expects). This uses a modern
ECDSA P-256 key, which every common TLS client supports (Ed25519 keys are
newer but are rejected by some clients, including the LibreSSL-based curl that
ships with macOS as of June 2026):
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -noenc -keyout cert.pem -out cert.pem -days 365 -subj "/CN=localhost"
Running ext_http_server
If you have files you want to serve in /tmp/path/to/files/ run the following
to serve them up with a max outgoing throughput of 16KBps:
ext_http_server --cert cert.pem -d /tmp/path/to/files -r16 -a foo:bar
Or run it once without installing:
uvx ext_http_server --cert cert.pem -d /tmp/path/to/files -r16 -a foo:bar
By default, you will be able to access the webserver at
https://localhost:8000. To authenticate, use the
username foo and the password bar as indicated by the -a foo:bar
argument. Note that multiple -a arguments can be added to add more than one
user.
Metadata
Release files for ext_http_server 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ext_http_server-1.0.1.tar.gz | 31.0 kB | Without provenance | Details for ext_http_server-1.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ext_http_server-1.0.1-py3-none-any.whl | Python 3 | none | any | Details for ext_http_server-1.0.1-py3-none-any.whl |
Total release size: 38.1 kB
Release files / ext_http_server-1.0.1.tar.gz
| Download URL | ext_http_server-1.0.1.tar.gz |
|---|---|
| Size | 31.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d1d02401a88e6a7787ce38cf93d4dcfeb57e85e95e45d7acc83598f0544ab2e
|
|
BLAKE2b-256 checksum How to use checksums |
550fc4138a44e727f895bf2cc0a6841c0ebcdb8d025fb6191e0ba5970051ee02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ext_http_server-1.0.1-py3-none-any.whl
| Download URL | ext_http_server-1.0.1-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
631878d1a55d71d2d97644b5b9efe715d6776a649749d0c11d18b524bad3d515
|
|
BLAKE2b-256 checksum How to use checksums |
60dcd5e926371c482f7e7973fe0fdaddaeeb20dfb2c8114cebba85f6e46892e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for ext_http_server 1.0.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.