graphql-crystal / 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.88ms 110kps
graphql-crystal Crystal Kemal 3.34ms 60kps
gqlgen Go net/http 4.37ms 46kps
async-graphql Rust Actix Web 4.79ms 42kps
Juniper Rust Actix Web 5.43ms 37kps
Hot Chocolate C# ASP.NET 9.94ms 20kps
Mercurius Node.js Fastify 10.73ms 19kps
graphql-go Go net/http 11.45ms 17kps
GraphqlD D Vibe.d 12.40ms 16kps
agoo Ruby/C agoo 13.01ms 15kps
graphql-yoga Node.js http 16.08ms 13kps
graphql-jit Node.js http 21.31ms 9.4kps
Absinthe Elixir Phoenix 25.47ms 7.8kps
Hono Bun HonoJS 26.89ms 7.4kps
apollo Node.js Express 35.25ms 5.6kps
graphql-ruby Ruby Puma 48.30ms 5.3kps
nim-graphql Nim Chronos 57.11ms 3.6kps
graphql-js Node.js http 57.00ms 3.5kps
Sangria Scala Akka HTTP 112.40ms 1.8kps
Graphene Python gunicorn 128.63ms 1.5kps
Strawberry Python gunicorn 132.70ms 1.5kps

About

GraphQL server benchmarks

License:MIT License


Languages

Language:Elixir 39.1%Language:Crystal 14.1%Language:JavaScript 11.2%Language:Rust 7.2%Language:D 5.3%Language:Go 5.3%Language:Ruby 3.9%Language:Python 3.4%Language:Nim 3.3%Language:Scala 3.3%Language:Nix 2.2%Language:Dockerfile 1.2%Language:C# 0.7%