Skip to content

Benchmarks for different Node.js GraphQL Servers

License

Notifications You must be signed in to change notification settings

benawad/node-graphql-benchmarks

This branch is 147 commits ahead of, 590 commits behind fastify/benchmarks:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ed5547b · May 6, 2024
May 6, 2024
May 6, 2024
May 6, 2024
Dec 1, 2018
Nov 24, 2020
Nov 25, 2020
Nov 21, 2021
Sep 11, 2017
Nov 23, 2018
Nov 24, 2020
Nov 16, 2021
Mar 1, 2019
Sep 9, 2017
Sep 9, 2017
May 6, 2024
May 6, 2024
May 6, 2024
May 6, 2024
May 6, 2024
May 6, 2024

Repository files navigation

TL;DR

  • graphql-jit helps
  • apollo-server adds overhead
  • tracing resolvers kills performance
  • type-graphql adds overhead

Explanation

For further details, please check out this video.

Usage

git clone https://github.com/benawad/benchmarks
cd benchmarks
npm install
npm start

Benchmarks

duration: 60.14s connections: 100 pipelining: 5

Server Requests/s Latency Throughput/Mb
rust-graphql 66804.8 7.00 391.47
bun-yoga-jit 13934.5 35.38 94.31
go-graphql 13567.7 36.36 79.78
uWebSockets-graphql+jit 12364.5 39.93 83.33
core-graphql-jit-str 9154.3 54.11 61.95
core-graphql-jit-buf 9120.5 54.31 61.73
benzene-jit-http 8756.6 56.58 59.69
apollo-schema+async 8589.9 57.69 2.38
graphql-http+middleware 8576.5 57.78 2.37
graphql-http 8567.2 57.85 2.37
graphql-http+type-graphql 8566.9 57.84 2.37
graphql-http+async-middleware 8429.6 58.80 2.33
graphql-compose+async 8415.9 58.90 2.33
graphql-http+graphql-jit+type-graphql 8415.1 58.90 2.33
graphql-http+async 8388.3 59.09 2.32
graphql-http+graphql-jit+graphql-compose 8350.7 59.35 2.31
core-graphql-jit-buf-fjs 8251.5 60.06 55.85
fastify-REST 8247.3 60.11 76.00
graphql-http+graphql-compose 8227.7 60.25 2.28
graphql-http+graphql-jit 8157.3 60.77 2.26
bun-yoga 8132.2 60.96 55.04
graphql-http-dd-trace-no-plugin 7920.7 62.60 2.19
mercurius+graphql-jit 7624.2 65.06 51.95
mercurius+graphql-jit+type-graphql 6446.1 77.03 43.92
graphql-http-dd-trace 5410.9 91.85 1.50
graphql-http-dd-trace-less 5313.5 93.52 1.47
express-REST 4988.7 99.66 46.28
benzene-http 4776.6 104.11 32.56
mercurius+graphql-jit+otel-instrumentation 4717.1 105.42 32.14
mercurius+graphql-compose 4468.4 111.31 30.44
mercurius 4400.1 113.05 29.98
graphql-api-koa+graphql-jit 4223.8 117.78 28.75
yoga-graphql 3815.7 130.43 25.99
graphql-api-koa 3046.7 163.43 20.73
apollo-as-integrations-fastify+graphql-jit 2722.3 182.94 18.61
apollo-as-integrations-fastify+graphql-jit+type-graphql 2652.8 187.71 18.14
apollo-as-integrations-fastify 2578.5 192.82 17.63
apollo-as-koa-integrations+graphql-jit+type-graphql 2385.0 207.45 16.41
apollo-server-express-tracing 2131.1 230.22 14.77
apollo-server-express 2116.2 231.06 14.67
apollo-opentracing 0.0 0.00 0.00
express-gql 0.0 0.00 0.00
fastify-express-graphql-jit 0.0 0.00 0.00
fastify-express-graphql-typed-jit 0.0 0.00 0.00
fastify-express-grapql-typed 0.0 0.00 0.00

About

Benchmarks for different Node.js GraphQL Servers

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 84.2%
  • TypeScript 7.2%
  • Go 4.6%
  • Rust 4.0%