Is an assembly webserver more performant than webservers written in other languages? Are there any hard limits on how much you can squeeze when using a particular framework?
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 :-)
I love projects like this because I think eventually all common computing tasks will be broken down in constituent most computationally optimized components
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.
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?
> written entirely by-hand in ARM64 assembly as a fun project. It's probably got a lot of vulnerabilities I'm unaware of
Impressive, but that second part worries me. I hope one day AI security scans upon commit (or integrated in the IDE) will alleviate that risk.
What's the current security gold standard for web servers? Hiawatha? https://hiawatha.leisink.net/
Is an assembly webserver more performant than webservers written in other languages? Are there any hard limits on how much you can squeeze when using a particular framework?
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 :-)
I love projects like this because I think eventually all common computing tasks will be broken down in constituent most computationally optimized components
"raw syscalls only: no libc wrappers"
insane! i wonder how many times you have spent to learn about them!
This isn't a bad thing per se. I imagine this could be a thing for an embedded side project or a tiny rescue system.
Edit: or learning arm64 assembly :)
There's critical security flaws in this web server. Consult your local LLM for a security analysis.
You wrote this by hand? Impressive.
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.
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?
Ahh, this little gem ported to Linux, great! That opens much more possibilities to play with it, thanks