benchmarks

GraphQL server benchmarks

GraphQL server benchmarks

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.

Results

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