kyri-petrou / benchmarks

GraphQL server benchmarks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.86ms 110kps
graphql-crystal Crystal Kemal 2.97ms 67kps
Tailcall Rust Hyper 3.61ms 55kps
gqlgen Go net/http 4.05ms 49kps
async-graphql Rust Actix Web 4.88ms 41kps
Juniper Rust Actix Web 5.60ms 36kps
Hot Chocolate C# ASP.NET 9.39ms 21kps
Mercurius Node.js Fastify 10.20ms 20kps
graphql-go Go net/http 11.37ms 18kps
graphql-yoga Node.js http 15.62ms 13kps
agoo Ruby/C agoo 16.52ms 12kps
nim-graphql Nim Chronos 20.00ms 10.0kps
graphql-jit Node.js http 20.42ms 9.8kps
Absinthe Elixir Phoenix 23.86ms 8.4kps
Hono Bun HonoJS 29.80ms 6.7kps
graphql-ruby Ruby Puma 45.43ms 5.7kps
apollo Node.js Express 35.77ms 5.6kps
graphql-js Node.js http 46.15ms 4.3kps
Sangria Scala Akka HTTP 97.50ms 2.1kps
Strawberry Python gunicorn 109.97ms 1.8kps
Graphene Python gunicorn 111.76ms 1.8kps

About

GraphQL server benchmarks

License:MIT License


Languages

Language:Elixir 41.3%Language:Crystal 14.5%Language:JavaScript 11.8%Language:Rust 7.6%Language:Go 5.6%Language:Ruby 4.1%Language:Python 3.5%Language:Nim 3.5%Language:Scala 3.4%Language:Nix 2.5%Language:Dockerfile 1.4%Language:C# 0.7%