Skip to main content

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.

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)

Source distribution for ext_http_server 1.0.1
File Size Uploaded
ext_http_server-1.0.1.tar.gz 31.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ext_http_server 1.0.1
File Interpreter ABI Platform
ext_http_server-1.0.1-py3-none-any.whl Python 3 none any Details

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}

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page