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.46ms | 69kps |
| graphql-crystal | Crystal | Kemal | 2.86ms | 35kps |
| async-graphql | Rust | Actix Web | 3.49ms | 29kps |
| Juniper | Rust | Actix Web | 3.70ms | 27kps |
| gqlgen | Go | net/http | 3.72ms | 27kps |
| Hot Chocolate | C# | ASP.NET | 6.69ms | 15kps |
| Mercurius | Node.js | Fastify | 8.00ms | 13kps |
| agoo | Ruby/C | agoo | 8.43ms | 12kps |
| graphql-go | Go | net/http | 10.18ms | 9.8kps |
| graphql-yoga | Node.js | http | 15.55ms | 6.4kps |
| Hono | Bun | HonoJS | 16.64ms | 6.0kps |
| graphql-jit | Node.js | http | 18.10ms | 5.5kps |
| Absinthe | Elixir | Phoenix | 22.25ms | 4.5kps |
| apollo | Node.js | Express | 33.50ms | 3.0kps |
| graphql-ruby | Ruby | Puma | 45.65ms | 2.8kps |
| graphql-js | Node.js | http | 48.95ms | 2.0kps |
| Graphene | Python | gunicorn | 97.85ms | 1.0kps |
| Strawberry | Python | gunicorn | 98.74ms | 1.0kps |
| Sangria | Scala | Akka HTTP | 131.74ms | 740ps |