Graphql server benchmarks in many languages. Pull requests welcome, please read CONTRIBUTING.md
All servers implement a simple schema:
type Query {
hello: String!
}The returned string is always world.
The API is served over HTTP using a common web server and load tested using bombardier.
| Name | Language | Server | Latency avg | Requests |
|---|---|---|---|---|
| static-rust | Rust | Actix Web | 1.79ms | 110kps |
| graphql-crystal | Crystal | Kemal | 2.93ms | 68kps |
| gqlgen | Go | net/http | 3.67ms | 54kps |
| async-graphql | Rust | Actix Web | 4.44ms | 45kps |
| Juniper | Rust | Actix Web | 5.16ms | 39kps |
| Hot Chocolate | C# | ASP.NET | 8.14ms | 25kps |
| Mercurius | Node.js | Fastify | 8.55ms | 23kps |
| graphql-go | Go | net/http | 9.96ms | 20kps |
| GraphqlD | D | Vibe.d | 11.04ms | 18kps |
| agoo | Ruby/C | agoo | 12.53ms | 16kps |
| graphql-yoga | Node.js | http | 13.66ms | 15kps |
| graphql-jit | Node.js | http | 19.11ms | 10kps |
| Absinthe | Elixir | Phoenix | 23.16ms | 8.6kps |
| Hono | Bun | HonoJS | 27.55ms | 7.3kps |
| apollo | Node.js | Express | 32.27ms | 6.2kps |
| graphql-ruby | Ruby | Puma | 44.76ms | 5.7kps |
| nim-graphql | Nim | Chronos | 54.42ms | 3.8kps |
| graphql-js | Node.js | http | 52.83ms | 3.8kps |
| Sangria | Scala | Akka HTTP | 97.18ms | 2.0kps |
| Graphene | Python | gunicorn | 116.19ms | 1.7kps |
| Strawberry | Python | gunicorn | 117.29ms | 1.7kps |