HttpArena
Frameworks

fnet-h1

Experimental · Go · engine: fnet · standard configuration

fnet v1.0.0's fhttp HTTP/1.1 server: fnet's epoll event loops find where each request message ends and enqueue it, then the standard library parses it and runs an http.Handler on a task-pool worker, so there is no goroutine per connection. Responses are buffered whole. A request whose body is not buffered (larger than 1MB, chunked, or framed unusually) is handed to an internal net/http server, which closes that connection after the one request. fnet's ReusePort option is on: on Linux every sub-reactor listens on :8080 with a socket of its own, sharing the port through SO_REUSEPORT so the kernel spreads the connections over the loops. A second fhttp.Server on :8081 speaks HTTPS through fnet's ftls (crypto/tls inside the connection callbacks, ALPN http/1.1) for the TLS profiles. Static files are read per request from the mounted directory, serving the pre-compressed .br/.gz siblings when the client accepts them; /async-db and the crud routes use pgx's pool sized from DATABASE_MAX_CONN, with Redis as a cache-aside store for item reads where REDIS_URL is provided.

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, less 2.5% for each of routing, middleware, request and response the entry does not do for you - its completeness factor, which the WebSocket and gRPC families do not carry. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.113 of 224585

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0962,404,4921.70ms8.09ms6605.8%156MiB
ConnectionPipelined4,09613,726,8284.77ms21.70ms6470.2%228MiB
ConnectionShort-lived4,0962,010,2112.02ms9.10ms6363.5%301MiB
ConcurrencyAsync Delay32,0001,494,89621.21ms41.20ms5125.4%841MiB
EfficiencyLatency-10K1,0249,98184.5us124.0us40.7%86MiB
EfficiencyLatency-1M1,024997,258151.4us518.0us3238.3%132MiB
EfficiencyLatency-500K/81,024404,2891896352.2us4004864.0us755.5%33MiB
WorkloadJSON Comp4,096230,86617.56ms248.80ms5403.3%560MiB
WorkloadJSON Comp16,384228,59067.68ms701.70ms5222.6%596MiB
WorkloadJSON TLS4,096457,96829.67ms801.33ms5031.3%275MiB
Workload8Gbit51249,243107.1us171.0us294.2%126MiB
WorkloadStatic TLS1,024244,87727.36ms564.47ms4176.1%298MiB
DatabaseAsync DB1,024116,3478.28ms20.60ms4353.7%236MiB

Compared with

The Go entries around fnet-h1 on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.

EntryCompositevs fnet-h1
fib-tuned6061+32%head to head
fiber5637+23%head to head
fib5439+19%head to head
go-fasthttp3505-24%head to head
echo2118-54%head to head

Compare fnet-h1 with any Go entry · Compare fnet-h1 with any entry, in any language · Every Go entry, ranked

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