/benchmarks

GraphQL server benchmarks

Primary LanguageElixirMIT LicenseMIT

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.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