Live data from Hacker News

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

github.com

1–10 of 27 posts

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

#1
This is ymawky, a now-dynamic web server written entirely in ARM64 Assembly. I've previously posted about ymawky here: https://news.ycombinator.com/item?id=48080587

In the past month and a half, I've made some pretty major improvements: I've added CGI scripting support, so the server now supports query strings and dynamic content; and I've fully ported ymawky to run on Linux, rather than macOS-only.

In addition to GET/PUT/HEAD/DELETE/OPTIONS requests, because of CGI support ymawky also accepts POST requests (only to CGI resources for now).

I've also updated the more detailed writeup to reflect CGI support and the Linux port: https://imtomt.github.io/ymawky/

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

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

#3
Cool. I particularly like the O'Reilly book cover that never was. Although I fear you may have misunderstood what wasm is...

Question/critique. Isn't getting the mime type by file extension a bit windowsy? Would it not be easier to read the magic number when you're at the assembly level?

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

#7
I love it :-)

Back in the distant past I wrote some really big ARM 32 assembly projects. 64 bit ARM is really very similar!

I had a look through the code. Some ENTRY/EXIT macros to help with the drudgery of save restore registers & stack frame would probably help. Also some register renaming would help readability (eg if a register points to incoming data throughout a subroutine rename it pdata).

I salute your effort and please enjoy the core dumps :-)

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

#10
arm64 is an IP-locked ISA, namely it is not worth assembly writting, stick to plain and simple C.

RISC-V is. I am self-hosting many of my internet thingies. I plan to move to RISC-V only hardware and to rewrite my internet software directly in mono-threaded paranoid RISC-V assembly.

Post reply on HN