Home

Awesome

<!-- README.md is generated from README.ecr, do not edit -->

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

NameLanguageServerLatency avgRequests
static-rustRustActix Web1.88ms110kps
graphql-crystalCrystalKemal3.34ms60kps
gqlgenGonet/http4.37ms46kps
async-graphqlRustActix Web4.79ms42kps
JuniperRustActix Web5.43ms37kps
Hot ChocolateC#ASP.NET9.94ms20kps
MercuriusNode.jsFastify10.73ms19kps
graphql-goGonet/http11.45ms17kps
GraphqlDDVibe.d12.40ms16kps
agooRuby/Cagoo13.01ms15kps
graphql-yogaNode.jshttp16.08ms13kps
graphql-jitNode.jshttp21.31ms9.4kps
AbsintheElixirPhoenix25.47ms7.8kps
HonoBunHonoJS26.89ms7.4kps
apolloNode.jsExpress35.25ms5.6kps
graphql-rubyRubyPuma48.30ms5.3kps
nim-graphqlNimChronos57.11ms3.6kps
graphql-jsNode.jshttp57.00ms3.5kps
SangriaScalaAkka HTTP112.40ms1.8kps
GraphenePythongunicorn128.63ms1.5kps
StrawberryPythongunicorn132.70ms1.5kps