June 23, 2026

Server? I hardly assembly her

Show HN: A pure ARM64 Assembly web server, now on Linux with CGI for no reason

A handmade one-person web server lands on Linux and the crowd is equal parts amazed and confused

TLDR: A developer ported a web server written fully in ARM assembly to Linux, complete with file serving, uploads, and CGI support. Commenters were wowed by the sheer effort, while a few tossed in nerdy nitpicks and jokes, turning it into a classic "amazing but why" tech spectacle.

A developer just dropped ymawky, a tiny web server written entirely by hand in ARM64 assembly — meaning it skips the usual comfort blankets and talks straight to the operating system. It now runs on Linux, serves files, handles uploads, blocks some nasty request tricks, and even supports old-school CGI "for no reason," which only made the comments love it more. This thing lives on your own machine, only listens on 127.0.0.1, and has a proudly chaotic energy that screams: I built this because I could.

And honestly? The real show was the crowd reaction. One camp was instantly smitten, calling it a "little gem" and dreaming up uses in embedded gadgets, rescue systems, or just as a hardcore learning project. Another group was in pure disbelief that this was written by hand, with the kind of praise usually reserved for people who build ships in bottles or crochet with lightning. But of course, no Hacker News party is complete without one person politely kicking the tires: one commenter loved the fake O'Reilly-style cover, then immediately side-eyed the file-type detection and joked that the creator may have "misunderstood what wasm is." Ouch.

The funniest vibe here is that nobody seems to think this is normal — they just can’t decide whether it’s brilliant, gloriously unnecessary, or both. And that’s exactly why people can’t stop staring.

Key Points

  • ymawky is a syscall-only, no-libc web server written entirely in ARM64 assembly, and the showcased branch is a Linux port of a project originally developed for macOS.
  • The server requires gcc and binutils to build, uses `www/` as its document root, and serves custom error pages from an `err/` directory.
  • By default it runs on 127.0.0.1:8080, supports custom ports, and offers a debug mode that disables forking and processes a single request.
  • Supported HTTP methods are GET, PUT, DELETE, OPTIONS, HEAD, and POST through CGI scripts, with CGI scripts stored under a configurable CGI directory.
  • The article lists features including path traversal protection, percent-decoding, atomic PUT uploads up to 1 GiB by default, MIME type detection, byte-range requests, directory listing, and basic HTTP/1.0 and HTTP/1.1 parsing.

Hottest takes

"or learning arm64 assembly :)" — tosti
"I fear you may have misunderstood what wasm is..." — benj111
"You wrote this by hand? Impressive." — wewewedxfgdf
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.