Skip to main content

An extended version of Python's SimpleHTTPServer that supports https, authentication, rate limiting, and download resuming.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ext_http_server-1.0.1.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ext_http_server-1.0.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file ext_http_server-1.0.1.tar.gz.

File metadata

  • Download URL: ext_http_server-1.0.1.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for ext_http_server-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1d1d02401a88e6a7787ce38cf93d4dcfeb57e85e95e45d7acc83598f0544ab2e
MD5 a1c67fd738695898912da16c5f09320f
BLAKE2b-256 550fc4138a44e727f895bf2cc0a6841c0ebcdb8d025fb6191e0ba5970051ee02

See more details on using hashes here.

File details

Details for the file ext_http_server-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ext_http_server-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for ext_http_server-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 631878d1a55d71d2d97644b5b9efe715d6776a649749d0c11d18b524bad3d515
MD5 d385fb7b611d1899f3e9a5fb13b7bd8f
BLAKE2b-256 60dcd5e926371c482f7e7973fe0fdaddaeeb20dfb2c8114cebba85f6e46892e1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page