Repository navigation
Releases
BlazeServe 1.0.0
BlazeServe 1.0 is a rewrite of the file server in Rust. It serves large static files over HTTP/1.1 and HTTP/2, and the same program also downloads and uploads them from the command line. The options and web addresses are the same as 0.x, apart from the changes listed under Upgrading.
What you get
- Large files without drama. Downloads stream in small chunks, so memory stays flat however big the file is. Byte ranges, conditional requests and precompressed
.brand.gzfiles work as browsers and download tools expect. blaze getandblaze put. Resumable transfers, with parallel segments for big downloads. If the file changes on the server, the download starts over instead of mixing two versions.- Safe uploads. Off until you set
--max-upload-mband a password. Files are staged, checked and then published, and nothing is overwritten unless the request carries a matchingIf-Matchtag. - Folders as ZIP. Download any folder as a streamed ZIP at
/__zip__. - HTTPS and HTTP/2. TLS 1.2 or newer through rustls, with a clear error if the certificate and key do not match.
- Ready for production. Health and readiness endpoints, Prometheus metrics, optional OpenTelemetry export, JSON logs, request IDs, rate limits and a connection limit.
- Checks before you serve.
blaze doctor ./sitelooks at the folder, the port and your system, andblaze benchmarkmeasures throughput. - Runs anywhere. Linux, macOS and Windows, as a single binary, a Python package, a Rust crate or a small container image that runs as a non-root user.
Install
pip install blazeserve
cargo install blazeserve
docker run --rm -p 8000:8000 -v "$PWD:/data:ro" ghcr.io/whoisjayd/blazeserve:1.0.0Prebuilt binaries for Linux (x86_64 and ARM64, glibc and musl), macOS (Intel and Apple Silicon) and Windows are attached below, with a SHA256SUMS file to check them.
Then try:
blaze serve ./siteUpgrading from 0.x
Read Upgrading from 0.x before you update. The short version:
- The Python functions and classes from 0.x are gone. Use
blazeserve.Serverandblazeserve.main. - Uploads are off by default.
--max-upload-mb 0used to mean unlimited. Now it means off. - Paths are decoded once, and connections are limited by
--max-connections. - The alert
BlazeServeHighActiveConnectionsis nowBlazeServeHighActiveRequests, and two new connection metrics were added. - The container image is built from
scratch, has no shell and no built-in health check. Use/__live__and/__ready__from your orchestrator.
Anonymous usage report
BlazeServe sends a small anonymous usage report by default. You can turn it off, and the telemetry guide lists exactly what it contains.
Documentation
Start with the README and the guides in docs. If something does not work, run blaze doctor and see the troubleshooting guide.