Installation
qaws can run as a downloaded binary, a Docker image, or a source build.
Release binaries
Download the artifact that matches your platform from the GitHub release, then mark it executable:
chmod +x ./qaws-0.2.7-aarch64-macos
./qaws-0.2.7-aarch64-macos versionInstall it somewhere on your PATH:
install -m 755 ./qaws-0.2.7-aarch64-macos /usr/local/bin/qaws
qaws versionVerify checksums when you download release artifacts:
shasum -a 256 -c SHA256SUMSPractical release targets
| Platform | Artifact |
|---|---|
| Linux x86_64 musl | qaws-0.2.7-x86_64-linux-musl |
| Linux x86_64 glibc | qaws-0.2.7-x86_64-linux-gnu |
| Linux ARM64 musl | qaws-0.2.7-aarch64-linux-musl |
| Linux ARM64 glibc | qaws-0.2.7-aarch64-linux-gnu |
| Linux ARM hard-float | qaws-0.2.7-arm-linux-musleabihf |
| Linux RISC-V musl | qaws-0.2.7-riscv64-linux-musl |
| Termux / Android ARM64 | qaws-0.2.7-aarch64-linux-android |
| macOS Apple Silicon | qaws-0.2.7-aarch64-macos |
| macOS Intel | qaws-0.2.7-x86_64-macos |
| Windows x86_64 | qaws-0.2.7-x86_64-windows-gnu.exe |
| Windows ARM64 | qaws-0.2.7-aarch64-windows-gnu.exe |
| FreeBSD x86_64 | qaws-0.2.7-x86_64-freebsd |
Termux
Termux uses Android Bionic, not glibc. Use the Android artifact:
qaws-0.2.7-aarch64-linux-androidInstall it:
chmod +x ./qaws-0.2.7-aarch64-linux-android
install -m 755 ./qaws-0.2.7-aarch64-linux-android "$PREFIX/bin/qaws"
qaws versionServe a site from your home directory:
qaws --host 0.0.0.0 --port 8080 --serve "$HOME/website/public"Use a high port unless the device is rooted or configured to allow privileged binds.
Docker
Docker is the simplest install path when you already run containers:
docker pull ghcr.io/nulldoubt/qaws:0.2.7
docker run --rm -p 8080:80 -v "$PWD/public:/public:ro" ghcr.io/nulldoubt/qaws:0.2.7See Docker for volume, config, Compose, and publishing details.
Source build
Install Zig 0.16.0, then:
git clone https://github.com/nulldoubt/qaws.git
cd qaws
zig build
zig test src/main.zig
zig build testRun from the build output:
./zig-out/bin/qaws --host 127.0.0.1 --port 8080 --serve ./publicBuild one release target:
zig build -Dtarget=aarch64-linux-gnu -Doptimize=ReleaseFastBuild all practical release artifacts:
./scripts/build-release.sh