enisdenjo / 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.23ms 81kps
graphql-crystal Crystal Kemal 2.40ms 42kps
gqlgen Go net/http 3.06ms 33kps
Juniper Rust Actix Web 3.33ms 30kps
async-graphql Rust Actix Web 3.81ms 26kps
Mercurius Node.js Fastify 5.90ms 17kps
Hot Chocolate C# ASP.NET 7.19ms 14kps
agoo Ruby/C agoo 7.81ms 13kps
graphql-go Go net/http 8.86ms 11kps
Hono Bun HonoJS 11.87ms 8.4kps
graphql-jit Node.js http 15.70ms 6.4kps
Absinthe Elixir Phoenix 18.78ms 5.3kps
graphql-yoga Node.js http 18.81ms 5.3kps
apollo Node.js Express 23.37ms 4.3kps
graphql-ruby Ruby Puma 38.88ms 3.3kps
graphql-js Node.js http 32.49ms 3.1kps
Strawberry Python gunicorn 101.37ms 980ps
Graphene Python gunicorn 101.56ms 970ps
Sangria Scala Akka HTTP 114.06ms 870ps

About

GraphQL server benchmarks

License:MIT License


Languages

Language:Elixir 38.8%Language:Crystal 14.8%Language:JavaScript 12.4%Language:Rust 8.0%Language:Go 5.9%Language:Ruby 4.1%Language:Scala 3.8%Language:Python 3.7%Language:Nim 3.7%Language:Dockerfile 2.2%Language:Nix 1.8%Language:C# 0.8%