Graphql server benchmarks in many languages. Pull requests welcome.
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 k6.
| Name | Language | Server | Latency avg | Requests |
|---|---|---|---|---|
| graphql-crystal | Crystal | Kemal | 8.77ms | 11kps |
| Juniper | Rust | Actix Web | 9.68ms | 9.9kps |
| async-graphql | Rust | Actix Web | 9.69ms | 9.9kps |
| nim-graphql | Nim | Chronos | 11.62ms | 8.5kps |
| agoo | Ruby/C | agoo | 11.87ms | 8.3kps |
| gqlgen | Go | net/http | 12.15ms | 8.1kps |
| Mercurius | Node.js | Fastify | 13.54ms | 7.3kps |
| Hot Chocolate | C# | ASP.NET | 14.30ms | 6.9kps |
| graphql-go | Go | net/http | 14.64ms | 6.8kps |
| graphql-yoga | Node.js | http | 19.82ms | 5.0kps |
| graphql-jit | Node.js | http | 23.92ms | 4.1kps |
| Absinthe | Elixir | Phoenix | 30.45ms | 3.3kps |
| graphql-js | Node.js | http | 46.32ms | 2.1kps |
| Sangria | Scala | Akka HTTP | 69.57ms | 1.4kps |
| graphql-ruby | Ruby | Puma | 63.51ms | 1.2kps |
| Graphene | Python | gunicorn | 90.46ms | 1.1kps |
| Strawberry | Python | gunicorn | 105.20ms | 940ps |