Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
include Clean up some old todos Jun 19, 2019
src Clean up some old todos Jun 19, 2019
test Add 404 test Jun 18, 2019
Makefile Work around a nasm bug by adding a slash Jun 19, 2019 Add a note about working directories Jun 19, 2019 Move todo file into the correct directory Jun 19, 2019

A static file server in x86 Assembly Build Status

Features and qualities:

  • Just under 1K lines of x86 NASM source
  • No libc (all batteries included)
  • No allocations
  • Release binary weighs in at 8.4KB (half the size of a C++ hello world)
  • Parallelized request handling via fork
  • Automatic directory index handling
  • Continuous testing suite

Building for release

You can make a tiny build using the following command. The generated binary is build/httpd. The server will serve from its working directory on port 15000 when started.


Building for development

This project compiles instantly, so just using make run will build and run the latest code.

Why build this?

I wanted to know what it was like to build a super bare-bones web server in x86 Assembly. Now I know.

You can’t perform that action at this time.