Skip to Content
qaws Documentation

qaws

qaws stands for Quick Arm Webserver. It is a small, dependency-free static file webserver written in Zig, built for direct binary use, Termux, Docker, and simple deployments where serving files should stay boring and fast.

qaws is currently documented for version 0.2.7.

By default, running qaws serves ./public on 0.0.0.0:80:

qaws

The common local development shape is:

qaws --host 127.0.0.1 --port 8080 --serve ./public

Or with Docker:

docker run --rm -p 8080:80 -v "$PWD/public:/public:ro" ghcr.io/nulldoubt/qaws:0.2.7

What qaws does

Static files

Serves files from one directory with index resolution and no directory listing.

HTTP/1.1

Supports GET, HEAD, keep-alive, ordered pipelining, validators, ranges, and sidecars.

Fast path

Uses small-file caching, event workers, async logging, and sendfile where supported.

Simple ops

Runs in the foreground, as a daemon, as a single binary, or as a scratch Docker image.

Defaults

SettingDefault
Host0.0.0.0
Port80
Serve directory./public
Config loadingExplicit only with --config
Access logsEnabled
Log formatplain
Keep-aliveEnabled
Keep-alive timeout5000 ms
Max requests per connection1000
Max connections1024
Static cacheEnabled
SendfileEnabled
ETagsEnabled
Byte rangesEnabled
Precompressed sidecarsEnabled

Design limits

qaws intentionally does not include TLS, authentication, directory listings, runtime compression, multipart range responses, custom error pages, automatic config discovery, or reverse-proxy routing. Put qaws behind a TLS reverse proxy or CDN when you need public HTTPS.

qaws docs. Built for static hosting.