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.84ms 110kps
Tailcall Rust Hyper 2.83ms 71kps
graphql-crystal Crystal Kemal 2.96ms 67kps
gqlgen Go net/http 4.27ms 47kps
async-graphql Rust Actix Web 4.66ms 43kps
Juniper Rust Actix Web 5.12ms 39kps
Hot Chocolate C# ASP.NET 9.05ms 22kps
Mercurius Node.js Fastify 9.73ms 21kps
graphql-go Go net/http 11.15ms 18kps
GraphqlD D Vibe.d 11.66ms 17kps
graphql-yoga Node.js http 14.70ms 14kps
agoo Ruby/C agoo 19.03ms 10kps
graphql-jit Node.js http 19.80ms 10kps
nim-graphql Nim Chronos 21.33ms 9.4kps
Absinthe Elixir Phoenix 23.38ms 8.5kps
Hono Bun HonoJS 30.69ms 6.5kps
graphql-ruby Ruby Puma 42.37ms 6.1kps
apollo Node.js Express 33.93ms 5.9kps
graphql-js Node.js http 52.62ms 3.8kps
Sangria Scala Akka HTTP 89.95ms 2.2kps
Graphene Python gunicorn 108.75ms 1.8kps
Strawberry Python gunicorn 109.29ms 1.8kps