Add zeemo — Zig io_uring HTTP/1.1 engine#723
Conversation
Bare-metal Zig server built directly on Linux io_uring syscalls (no liburing wrapper). One reactor process per allowed CPU via SO_REUSEPORT, each pinned with sched_setaffinity. Hand-written incremental HTTP/1.1 parser handles TCP fragmentation, chunked transfer encoding, keep-alive, and pipelining. Static musl binary on scratch (~370 KB). Subscribes to: baseline, json
|
/benchmark -f zeemo |
|
👋 |
Benchmark ResultsFramework:
Full log |
|
/benchmark -f zeemo --save |
|
👋 |
|
|
|
Hey @MDA2AV — thanks for merging! Noticed the |
|
👋 |
|
|
Hey, I am running it on main already directly on server, skipped the rebase because I am next to the server machine. Results should be up soon |
Description
Adds zeemo, a bare-metal Zig HTTP/1.1 server built directly on Linux
io_uringsyscalls — the first Zig entry in HttpArena.Subscribes to the
baselineandjsonprofiles. Submitted astype: engine.Implementation highlights:
io_uring(no liburing wrapper) — multishot accept, one ring per workerSO_REUSEPORT, each pinned withsched_setaffinity; fully shared-nothingrecv()calls,Content-Length+Transfer-Encoding: chunkedbodies, keep-alive, pipelining,"total":<price*quantity*m>}per item (allowed under engine rules)scratch, ~370 KBLocal validation: All 17 checks from
scripts/validate.shpass locally (baseline GET/POST/chunked, anti-cheat with randomized inputs, four TCP-fragmentation splits, JSON shape for counts 12/22/31/50 with multipliers, Content-Type headers).Source repo: https://github.com/skylightis666/zeemo
PR Commands — comment on this PR to trigger (requires collaborator approval):
/benchmark -f zeemo/benchmark -f zeemo -t baseline/benchmark -f zeemo --save