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.32ms | 12kps |
async-graphql | Rust | Actix Web | 9.11ms | 11kps |
Juniper | Rust | Actix Web | 9.31ms | 10kps |
agoo | Ruby/C | agoo | 11.14ms | 8.9kps |
nim-graphql | Nim | Chronos | 11.21ms | 8.8kps |
gqlgen | Go | net/http | 11.19ms | 8.7kps |
Mercurius | Node.js | Fastify | 13.11ms | 7.5kps |
graphql-go | Go | net/http | 13.72ms | 7.2kps |
Hot Chocolate | C# | ASP.NET | 14.04ms | 7.0kps |
graphql-yoga | Node.js | http | 18.73ms | 5.3kps |
graphql-jit | Node.js | http | 22.90ms | 4.3kps |
Absinthe | Elixir | Phoenix | 29.62ms | 3.4kps |
graphql-js | Node.js | http | 43.96ms | 2.3kps |
Sangria | Scala | Akka HTTP | 61.58ms | 1.6kps |
graphql-ruby | Ruby | Puma | 53.90ms | 1.5kps |
Graphene | Python | gunicorn | 87.77ms | 1.1kps |
Strawberry | Python | gunicorn | 100.92ms | 980ps |