HttpArena
Frameworks

vanilla-io_uring

Engine · V · engine: io_uring

vanilla is a minimalist, high-performance HTTP server written in V: multi-threaded, non-blocking io_uring I/O, lock-free, copy-free, SO_REUSEPORT. This entry is the vanilla-epoll entry's async handler verbatim, running on the io_uring async runtime (enghitalo/vanilla#99): DB queries park on the PG socket via a oneshot IORING_OP_POLL_ADD and resume on the ring — never blocking the worker. JSON is built in a single allocation with precomputed prefixes (no per-request reflection); json-comp gzips on Accept-Encoding; json-tls serves /json over HTTP/1.1 + TLS 1.3 on :8081 via the lib's epoll backend (the io_uring backend has no TLS) with kTLS record offload where present; static assets are preloaded into memory; fortunes renders the DB rows + a runtime row with HTML escaping; async-db/crud/fortunes use the native async pg_async driver with per-worker pipelined pools. Built with the default GC on pinned V master (built from source). crud uses an in-memory cache-aside (X-Cache MISS/HIT, invalidated on update) — no Redis required.

Composite rank

Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.15 of 34342

Every result

Alpha Round, 21 runs. Requests per second is the best of three; latency, CPU and memory come from that run.

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline5123,570,560142us1.02ms6447.4%1.0GiB
ConnectionBaseline4,0964,260,437961us6.59ms6285.6%1.2GiB
ConnectionPipelined51240,813,667200us3.14ms6622.4%1.0GiB
ConnectionPipelined4,09643,316,0351.51ms7.51ms6473.8%1.1GiB
ConnectionShort-lived5122,541,639185us820us6072.5%1.1GiB
ConnectionShort-lived4,0962,624,8091.42ms2.03ms6148.1%1.4GiB
WorkloadJSON4,0962,438,927844us6.78ms6564.4%1.4GiB
WorkloadJSON Comp5122,137,942116us687us6049.3%1.1GiB
WorkloadJSON Comp4,0962,869,933979us7.40ms6324.1%1.5GiB
WorkloadJSON Comp16,3842,764,9735.12ms17.20ms5908.4%1.9GiB
WorkloadJSON TLS4,0961,503,98119.27ms983.47ms6128.1%1.4GiB
WorkloadUpload322,67311.93ms45.40ms1917.1%1.3GiB
WorkloadUpload2563,04377.86ms293.50ms3463.3%1.4GiB
WorkloadStatic1,0241,454,140417.93us3.73ms5460.2%1.0GiB
WorkloadStatic4,0961,360,8621.56ms7.12ms5529.9%1.1GiB
WorkloadStatic6,8001,237,0662.84ms26.19ms5670.7%1.3GiB
DatabaseAsync DB1,024281,205855us6.67ms3278.9%1.2GiB
DatabaseCRUD4,096338,67610.40ms79.60ms825.3%1.3GiB
DatabaseFortunes1,024155,3305.15ms18.40ms6074.3%1.2GiB
Multi-endpointAPI-425667,8641.77ms17.90ms332.1%1.1GiB
Multi-endpointAPI-161,024207,8491.44ms20.70ms1151.0%1.3GiB

How the benchmark is run · The machine · Add or fix an entry