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.84ms 110kps
Tailcall Rust Hyper 2.83ms 71kps
graphql-crystal Crystal Kemal 2.96ms 67kps
gqlgen Go net/http 4.27ms 47kps
async-graphql Rust Actix Web 4.66ms 43kps
Juniper Rust Actix Web 5.12ms 39kps
Hot Chocolate C# ASP.NET 9.05ms 22kps
Mercurius Node.js Fastify 9.73ms 21kps
graphql-go Go net/http 11.15ms 18kps
GraphqlD D Vibe.d 11.66ms 17kps
graphql-yoga Node.js http 14.70ms 14kps
agoo Ruby/C agoo 19.03ms 10kps
graphql-jit Node.js http 19.80ms 10kps
nim-graphql Nim Chronos 21.33ms 9.4kps
Absinthe Elixir Phoenix 23.38ms 8.5kps
Hono Bun HonoJS 30.69ms 6.5kps
graphql-ruby Ruby Puma 42.37ms 6.1kps
apollo Node.js Express 33.93ms 5.9kps
graphql-js Node.js http 52.62ms 3.8kps
Sangria Scala Akka HTTP 89.95ms 2.2kps
Graphene Python gunicorn 108.75ms 1.8kps
Strawberry Python gunicorn 109.29ms 1.8kps

About

GraphQL server benchmarks

License:MIT License


Languages

Language:Elixir 38.9%Language:Crystal 14.0%Language:JavaScript 11.2%Language:Rust 7.2%Language:D 5.3%Language:Go 5.3%Language:Ruby 3.8%Language:Python 3.3%Language:Nim 3.3%Language:Scala 3.2%Language:Nix 2.3%Language:Dockerfile 1.3%Language:C# 0.7%