Show HN: A pure ARM64 Assembly web server, now on Linux with CGI for no reason
This is ymawky (yuh maw kee), a web server written entirely in ARM64 assembly. ymawky is a syscall-only, no libc, fork-per-connection web server written by hand. While originally developed for MacOS, this branch is a fully-featured Linux port.
To compile a stripped binary, run make . To compile a binary with debugging symbols, run make debug
ymawky requires gcc and binutils to assemble.
Ensure there is a www/ directory next to the ymawky executable. That's the document root where ymawky searches for files. GET with an empty filename ( GET / ) will search for www/index.html , so you might want to make sure there's an index.html as well.
ymawky will try to serve static error pages when a client's request results in error, eg 404. The pages it searches for in err/(code).html , so ensure err/ exists alongisde ymawky and www/ . See Configuration to modify the default file and docroot.
Unfortunately, while custom ports are supported, custom addresses are not. as of right now, ymawky can only run on 127.0.0.1 . This is solely because I haven't implemented it -- but if you'd like to consider this a safety feature, then I guess it could be intentional.