Experimental macOS Web Server Built Entirely in ARM64 Assembly Released by Developer
Hosted on GitHub, the software is currently limited to Apple Silicon devices and local connections, serving as a technical experiment rather than production-ready infrastructure.
A developer has released ymawky, a static-file web server for macOS written entirely in ARM64 assembly language. The project, which is hosted on GitHub under the repository imtomt/ymawky, operates without any C library dependencies, relying solely on raw Darwin syscalls to function. This approach represents a significant departure from standard server implementations, which typically utilise high-level libraries to manage system interactions.
The software is designed as a technical demonstration of low-level system programming and is currently functional only on Apple Silicon devices. To install and run the application, users are required to have the Xcode Command Line Tools installed on their machines. The server serves static files from a local directory named www/ and supports custom error pages located in an err/ directory, allowing for basic configuration of response codes and MIME types.
Functionality is currently restricted to local connections on the 127.0.0.1 address. While the author notes that custom ports are supported, binding to custom IP addresses has not yet been implemented. Consequently, the project does not support server-side code generation or advanced URL parsing, such as handling query strings, limiting its utility to simple static content delivery for local testing.
Security measures within the minimal implementation involve manual sanitisation of filenames to prevent cross-site scripting attacks and the use of specific flags to block symlink traversal. However, the author explicitly acknowledges that the code likely contains vulnerabilities due to its experimental nature. The removal of standard libraries often results in reduced robustness against denial-of-service attacks compared to mature, high-level server software.
The project is described by the developer as a fun experiment intended to explore the intricacies of operating system internals and CPU architecture. Previous similar projects have been developed for Linux using aarch64 assembly, focusing on minimal resource usage and manual register management. This latest iteration follows that tradition but is tailored specifically for the macOS environment and Apple Silicon hardware.
While the software is not suitable for production use, it serves as an educational resource for those interested in assembly language programming. The repository includes scripts for building custom error pages and documentation on configuration options, providing a glimpse into the manual management of memory offsets and error flags required when writing in raw assembly.


