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.83ms | 110kps |
| Tailcall | Rust | Hyper | 3.03ms | 66kps |
| graphql-crystal | Crystal | Kemal | 3.34ms | 60kps |
| gqlgen | Go | net/http | 3.96ms | 51kps |
| async-graphql | Rust | Actix Web | 4.60ms | 43kps |
| Juniper | Rust | Actix Web | 4.92ms | 41kps |
| Hot Chocolate | C# | ASP.NET | 8.58ms | 23kps |
| Mercurius | Node.js | Fastify | 9.90ms | 20kps |
| graphql-go | Go | net/http | 10.99ms | 18kps |
| graphql-yoga | Node.js | http | 14.89ms | 13kps |
| graphql-jit | Node.js | http | 20.05ms | 10.0kps |
| nim-graphql | Nim | Chronos | 20.65ms | 9.7kps |
| Absinthe | Elixir | Phoenix | 23.96ms | 8.3kps |
| agoo | Ruby/C | agoo | 26.61ms | 7.3kps |
| Hono | Bun | HonoJS | 28.55ms | 7.0kps |
| apollo | Node.js | Express | 34.78ms | 5.8kps |
| graphql-ruby | Ruby | Puma | 44.67ms | 5.7kps |
| graphql-js | Node.js | http | 45.94ms | 4.4kps |
| Sangria | Scala | Akka HTTP | 90.91ms | 2.2kps |
| Strawberry | Python | gunicorn | 108.45ms | 1.8kps |
| Graphene | Python | gunicorn | 108.37ms | 1.8kps |