/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 2.02ms 49kps
graphql-crystal Crystal Kemal 3.54ms 28kps
gqlgen Go net/http 5.96ms 17kps
Juniper Rust Actix Web 6.87ms 15kps
async-graphql Rust Actix Web 6.92ms 14kps
Hot Chocolate C# ASP.NET 11.21ms 8.9kps
agoo Ruby/C agoo 11.30ms 8.8kps
graphql-go Go net/http 14.45ms 6.9kps
Mercurius Node.js Fastify 15.40ms 6.5kps
graphql-yoga Node.js http 24.92ms 4.0kps
graphql-jit Node.js http 26.61ms 3.8kps
Absinthe Elixir Phoenix 30.14ms 3.3kps
graphql-ruby Ruby Puma 54.26ms 2.4kps
apollo Node.js Express 50.32ms 2.0kps
graphql-js Node.js http 57.10ms 1.7kps
Strawberry Python gunicorn 136.33ms 720ps
Graphene Python gunicorn 138.52ms 710ps
Sangria Scala Akka HTTP 188.08ms 520ps