Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
bin/ci
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
.gitignore
Makefile Work around a nasm bug by adding a slash Jun 19, 2019
README.md Add a note about working directories Jun 19, 2019
TODO.md Move todo file into the correct directory Jun 19, 2019

README.md

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.

$ LOGGING=0 RELEASE=1 make -B

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.