All benchmarked frameworks
Benchmark results for 358 web frameworks in 30 languages, measured with zrk at concurrency 64, 256, 512. Data of 2026-08-29.
Languages
- c 1
- clojure 4
- cpp 2
- crystal 12
- csharp 8
- d 7
- dart 6
- elixir 6
- fsharp 8
- gleam 1
- go 42
- guile 1
- haskell 2
- java 21
- javascript 63
- julia 4
- kotlin 7
- lua 1
- luau 1
- nim 12
- ocaml 1
- perl 2
- php 53
- python 37
- r 2
- ruby 13
- rust 30
- swift 5
- v 4
- zig 2
Fastest 50 overall
| # | Framework | Language | Requests / second | P50 latency | P99 latency | HTTP errors |
|---|---|---|---|---|---|---|
| 1 | ohkami-nio 0.24 | rust | 215 163 | 0.32 ms | 0.62 ms | 0 |
| 2 | khttp 0.2 | rust | 213 408 | 0.19 ms | 0.27 ms | 0 |
| 3 | agoo-c 0.7 | c | 212 446 | 0.34 ms | 0.62 ms | 0 |
| 4 | ohkami-tokio 0.24 | rust | 202 631 | 0.30 ms | 0.62 ms | 0 |
| 5 | caprese 0.1 | nim | 200 306 | 0.29 ms | 0.44 ms | 0 |
| 6 | simps 1 | php | 196 869 | 0.30 ms | 0.46 ms | 0 |
| 7 | hyper 1.5 | rust | 196 162 | 0.31 ms | 0.66 ms | 0 |
| 8 | powpow 0.1 | nim | 194 587 | 0.29 ms | 0.43 ms | 0 |
| 9 | fomo 2.4 | php | 189 374 | 0.31 ms | 0.49 ms | 0 |
| 10 | mark 2.1 | php | 188 879 | 0.31 ms | 0.66 ms | 0 |
| 11 | swoole 6.1 | php | 188 232 | 0.32 ms | 0.57 ms | 0 |
| 12 | micro-web 0.3 | rust | 188 190 | 0.32 ms | 0.78 ms | 0 |
| 13 | workerman 5.2 | php | 187 548 | 0.31 ms | 0.49 ms | 0 |
| 14 | warp 0.4 | rust | 186 137 | 0.32 ms | 0.77 ms | 0 |
| 15 | happyx 4.7 | nim | 184 669 | 0.30 ms | 0.47 ms | 0 |
| 16 | oatpp 1.3 | cpp | 184 194 | 0.32 ms | 0.48 ms | 0 |
| 17 | httpbeast 0.4 | nim | 183 326 | 0.31 ms | 0.48 ms | 0 |
| 18 | httpz 24120e7a80d798a1625a08d5cc02b96e17148bdb | zig | 182 530 | 0.33 ms | 0.46 ms | 0 |
| 19 | axum 0.8 | rust | 181 321 | 0.33 ms | 0.82 ms | 0 |
| 20 | viz 0.11 | rust | 180 706 | 0.33 ms | 0.81 ms | 0 |
| 21 | hertz 0.9 | go | 180 376 | 0.34 ms | 0.72 ms | 0 |
| 22 | vanilla_epoll 24120e7a80d798a1625a08d5cc02b96e17148bdb | v | 180 289 | 0.33 ms | 0.48 ms | 0 |
| 23 | nhttp 2 | javascript | 179 708 | 0.33 ms | 0.56 ms | 0 |
| 24 | elysia-bun 1.4 | javascript | 178 846 | 0.32 ms | 0.60 ms | 0 |
| 25 | activej 5.5 | java | 178 628 | 0.34 ms | 0.51 ms | 0 |
| 26 | reinhardt-web 0.3 | rust | 178 215 | 0.33 ms | 0.84 ms | 0 |
| 27 | poem 3 | rust | 177 360 | 0.34 ms | 0.83 ms | 0 |
| 28 | graphul 1 | rust | 177 334 | 0.33 ms | 0.86 ms | 0 |
| 29 | gotham 0.8 | rust | 176 082 | 0.34 ms | 0.85 ms | 0 |
| 30 | drogon 1.9 | cpp | 175 622 | 0.32 ms | 0.50 ms | 0 |
| 31 | mike 1.3 | nim | 175 563 | 0.30 ms | 0.51 ms | 0 |
| 32 | salvo 0.95 | rust | 175 431 | 0.34 ms | 0.86 ms | 0 |
| 33 | sifrr 0 | javascript | 174 175 | 0.32 ms | 0.50 ms | 0 |
| 34 | nickel 0.11 | rust | 174 072 | 0.12 ms | 0.22 ms | 0 |
| 35 | mesh 0.8 | javascript | 173 717 | 0.27 ms | 0.48 ms | 0 |
| 36 | rama 0.4 | rust | 173 493 | 0.34 ms | 0.88 ms | 0 |
| 37 | vixeny-deno 0.1 | javascript | 173 367 | 0.32 ms | 0.52 ms | 0 |
| 38 | whip 0.2 | nim | 173 074 | 0.32 ms | 0.53 ms | 0 |
| 39 | uwebsockets 20.58 | javascript | 172 563 | 0.33 ms | 0.51 ms | 0 |
| 40 | fulmine 5.18 | javascript | 172 187 | 0.31 ms | 0.55 ms | 0 |
| 41 | jooby 4.5 | java | 172 183 | 0.36 ms | 0.55 ms | 0 |
| 42 | actix 4.8 | rust | 172 146 | 0.31 ms | 0.54 ms | 0 |
| 43 | may_minihttp 0.1 | rust | 171 918 | 0.30 ms | 0.50 ms | 0 |
| 44 | silent 2 | rust | 171 331 | 0.35 ms | 0.88 ms | 0 |
| 45 | hono-deno 4.13 | javascript | 170 810 | 0.32 ms | 0.53 ms | 0 |
| 46 | web 0 | go | 170 651 | 0.36 ms | 0.61 ms | 0 |
| 47 | breeze 1.6 | go | 170 635 | 0.36 ms | 0.48 ms | 0 |
| 48 | zeno-rs-axum 0.2 | rust | 169 468 | 0.35 ms | 0.91 ms | 0 |
| 49 | webman 2.2 | php | 169 338 | 0.34 ms | 0.60 ms | 0 |
| 50 | rapidoid 5.5 | java | 169 271 | 0.37 ms | 0.55 ms | 0 |