- HTTP over unix domain socket
- POST JSON
- Request validation
- SQLite transaction
Apple M1 Pro, running everything on the same machine
oha http://localhost/posts --no-tui --unix-socket /tmp/benchmark.sock -z 10s -m POST -T 'application/json' -d '{ "content": "oha benchmark", "email": "oha@gmail.com" }'
Framework | RPS | p50 latency |
---|---|---|
Kotlin Vert.x SQLite Panama | 53K | 0.9ms |
Rust Actix-Web | 51K | 0.9ms |
C# ASP.NET Core | 45K | 1ms |
Zig http.zig | 43K | 1ms |
Go FastHTTP | 43K | 1.1ms |
Kotlin Vert.x SQLite JNI | 40K | 1.1ms |
JS Bun Hono | 21K | 1.9ms |
Python Blacksheep | 19K | 2.5ms |
Elixir Bandit | 10K | 4.9ms |
- Kotlin Native Ktor: can't listen on unix domain sockets
HTTP POST JSON echo
oha http://localhost/echo --no-tui --unix-socket /tmp/benchmark.sock -z 10s -m POST -T 'application/json' -d '{ "content": "oha benchmark", "email": "foo@gmail.com" }'
Framework | RPS | p50 latency |
---|---|---|
Rust Actix-Web | 266K | 0.2ms |
Zig http.zig | 264K | 0.2ms |
Kotlin Vert.x | 247K | 0.2ms |
Go FastHTTP | 199K | 0.2ms |
Python Blacksheep | 192K | 0.2ms |
C# ASP.NET Core | 190K | 0.3ms |
JS Bun Hono | 156K | 0.3ms |
Elixir Bandit | 139K | 0.3ms |