/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.54ms 65kps
Tailcall Rust Hyper 3.24ms 31kps
graphql-crystal Crystal Kemal 3.74ms 27kps
async-graphql Rust Actix Web 3.84ms 26kps
Juniper Rust Actix Web 3.89ms 26kps
gqlgen Go net/http 4.01ms 25kps
Hot Chocolate C# ASP.NET 7.53ms 13kps
Mercurius Node.js Fastify 8.84ms 11kps
nim-graphql Nim Chronos 11.39ms 8.8kps
graphql-go Go net/http 11.80ms 8.5kps
agoo Ruby/C agoo 13.41ms 7.5kps
graphql-yoga Node.js http 16.12ms 6.2kps
Hono Bun HonoJS 20.37ms 4.9kps
Absinthe Elixir Phoenix 26.96ms 3.7kps
graphql-jit Node.js http 29.19ms 3.4kps
apollo Node.js Express 38.92ms 2.6kps
graphql-ruby Ruby Puma 52.44ms 2.4kps
graphql-js Node.js http 52.78ms 1.9kps
Graphene Python gunicorn 99.45ms 990ps
Strawberry Python gunicorn 104.10ms 950ps
Sangria Scala Akka HTTP 170.34ms 580ps