mercurius VS graphql-tools

Compare mercurius vs graphql-tools and see what are their differences.

mercurius

Implement GraphQL servers and gateways with Fastify (by mercurius-js)

graphql-tools

:wrench: Utility library for GraphQL to build, stitch and mock GraphQL schemas in the SDL-first approach (by ardatan)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
mercurius graphql-tools
22 18
2,299 5,281
0.9% -
7.9 9.8
12 days ago 2 days ago
JavaScript TypeScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

mercurius

Posts with mentions or reviews of mercurius. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-08.
  • The Road to GraphQL At Enterprise Scale
    6 projects | dev.to | 8 Nov 2023
    GraphQL Gateway is primarily responsible for serving GraphQL queries to consumers. It takes a query from a client, breaks it into smaller sub-queries, and executes that plan by proxying calls to the appropriate downstream subgraphs. When we started our journey, there was only Apollo Federation in the arena, and we used it. Still, now you can look at other options (e.g. Mercurius, Conductor, Hot Chocolate, Wundergraph, Hasura Remote Schemas), compare benchmarks and decide what's important and preferable for your needs. The Gateway provides a unified API for consumers while giving backend engineers flexibility and service isolation.
  • Dynamic GraphQL queries with Mercurius
    3 projects | dev.to | 17 Sep 2023
    If you're using Fastify with Mercurius as your GraphQL adapter, you may be looking for some advanced usages. In this article, we'll explore a real world example with Dynamic GQL queries with Mercurius.
  • How to use DataLoader with Mercurius GraphQL
    3 projects | dev.to | 5 Aug 2023
    Loader: it is a built-in DataLoader-Like solution that is quick to set up and use.
  • Simple example with NestJS and Mercurius 😻
    3 projects | dev.to | 25 Jan 2023
    In this post I will show you how to implement NestJS😻 with GraphQL in code first mode, using Mercurius and the "platform" to Fastify.
  • Barrel Exports considered harmful
    4 projects | dev.to | 4 Dec 2022
    What this does is to overwrite or augment the types exposed by the pointed module, and can be used (for example) when relying on autogenerated code. One interesting case of this is GraphQL to TypeScript code generation, and how this is integrated with the amazing Mercurius library (made by some of my colleagues at NearForm! 😜).
  • Apollo Server v4 Breaking Changes. Time to move away?
    4 projects | dev.to | 3 Dec 2022
    When moving away from Apollo Server, and you're looking for a replacement built with JavaScript or TypeScript, let me give you some options. If you want to keep building your GraphQL API schema first, you might want to consider Mercurius (which relies on Fastify) or GraphQL Yoga. If you're going to build your GraphQL API code or resolver first, have a look at TypeGraphQL or Nexus. Alternatively, there are great GraphQL-as-a-Service solutions such as StepZen in case you no longer want to build, maintain and host your own GraphQL API.
  • Fastify DX and SolidJS in the Real World
    12 projects | dev.to | 20 Jul 2022
    Let's start with data. We live in amazing times and it's really easy and cheap (or free) to get started with storing and working with data online. Take for example a PlanetScale MySQL-compatible database, Fastify Node.js Server, Prisma database mapper and a GraphQL connector like Mercurius and you have an entire backend stack. For this example we assume you already have a backend or you want to connect to a 3rd party database like the GitHub GraphQL API.
  • Nest JS With Graphql World
    9 projects | dev.to | 16 Mar 2022
    In this chapter, we assume a basic understanding of GraphQL and focus on how to work with the built-in @nestjs/graphql module. The GraphQLModule can be configured to use Apollo server (with the @nestjs/apollo driver) and Mercurius (with the @nestjs/mercurius). We provide official integrations for these proven GraphQL packages to provide a simple way to use GraphQL with Nest. You can also build your own dedicated driver (read more on that here).
  • Shill me on Apollo client.
    2 projects | /r/reactjs | 25 Jan 2022
    Why would I want to use Apollo Client? So far in my career I have used some server graphql scaffolding (webonyx/graphql-php for PHP and mercurius for Node) and just used the fetch API (or whatever ajax API around XMLHttpRequest) against that server with the body being an object with
  • Are there actually better alternatives than Apollo server?
    7 projects | /r/graphql | 16 Jan 2022
    https://github.com/mercurius-js/mercurius Is easily the best node graphql server imo

graphql-tools

Posts with mentions or reviews of graphql-tools. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-18.
  • Is the graphql-tools project dead?
    3 projects | /r/graphql | 18 Jun 2022
    A few months ago I used the graphql-tools library to build a schema-stitching gateway, but have ran into several difficulties that need support. Unfortunately it seems like the team behind the project is completely unreachable. I’ve tried using the chatbox on their website, posting a question on discord, and even starting a github discussion thread, but all of these channels have remained silent.
    3 projects | /r/graphql | 18 Jun 2022
    I use this contributor chart on GitHub to get a feel for how active a project is - looks healthy to me: https://github.com/ardatan/graphql-tools/graphs/contributors
    3 projects | /r/graphql | 18 Jun 2022
  • How to use GraphQL Directives efficiently?
    2 projects | dev.to | 3 Jun 2022
    From the previous example, you note that depending on Query Directives is inconsistent due to the different handling from the GraphQL providers, as a result, GraphQL Tools discourages using the Query Directives:
  • Announcing GraphQL Yoga 2.0!
    8 projects | /r/graphql | 29 Mar 2022
    You might know us from projects such as graphql-code-generator, envelop or graphql-tools.
  • Creating a Proxy for your GraphQL Server
    2 projects | dev.to | 21 Mar 2022
    This article will document how you can do the same with minimal amount of code 😏 We'll be leveraging awesome utilities provided by graphql-tools
  • not able to download truffle suite
    3 projects | /r/BlockchainDevs | 21 Feb 2022
    npm WARN deprecated [email protected]: This package has been deprecated and now it only exports makeExecutableSchema.\nAnd it will no longer receive updates.\nWe recommend you to migrate to scoped packages such as u/graphql-tools/schema, u/graphql-tools/utils and etc.\nCheck out https://www.graphql-tools.com to learn what package you should use instead
  • How not to learn GraphQL
    8 projects | dev.to | 14 Feb 2022
    Schema Stitching (a component of GraphQL Tools[v6 and under]) got a bad rap when it was famously abandoned by Apollo in favor of their Federation architecture some years back. However, Stitching came under the stewardship of The Guild and friends in 2020, and they've since overhauled it with numerous automation and performance enhancements. Seemingly out of nowhere, Schema Stitching has reemerged as something of a nimble hummingbird racing alongside the stallion that is Apollo Federation.
  • Getting a bunch of error messages when trying to install Truffle. How do I fix this?
    9 projects | /r/code | 29 Jan 2022
    npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated [email protected]: this library is no longer supported npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: The `apollo-tracing` package is no longer part of Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#tracing for details npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated [email protected]: CircularJSON is in maintenance only, flatted is its successor. npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated [email protected]: The `graphql-extensions` API has been removed from Apollo Server 3. Use the plugin API instead: https://www.apollographql.com/docs/apollo-server/integrations/plugins/ npm WARN deprecated [email protected]: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by @ipld/dag-cbor and multiformats npm WARN deprecated [email protected]: The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details. npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated @nodefactory/[email protected]: Package is deprecated in favour of @chainsafe/filsnap-adapter npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by @ipld/dag-pb and multiformatsnpm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This package has been deprecated and now it only exports makeExecutableSchema.\nAnd it will no longer receive updates.\nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.\nCheck out https://www.graphql-tools.com to learn what package you should use instead npm WARN deprecated [email protected]: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. npm ERR! code 1 npm ERR! path C:\Users\andre\AppData\Roaming\npm\node_modules\truffle\node_modules\ganache\node_modules\keccak npm ERR! command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node-gyp rebuild npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using [email protected] npm ERR! gyp info using [email protected] | win32 | x64 npm ERR! gyp ERR! find Python npm ERR! gyp ERR! find Python Python is not set from command line or npm configuration npm ERR! gyp ERR! find Python Python is not set from environment variable PYTHON npm ERR! gyp ERR! find Python checking if "python3" can be used npm ERR! gyp ERR! find Python - "python3" is not in PATH or produced an error npm ERR! gyp ERR! find Python checking if "python" can be used npm ERR! gyp ERR! find Python - "python" is not in PATH or produced an error npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python39\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python39\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python39\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python39\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python39-32\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python39-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python39-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python39-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python39-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files (x86)\Python39-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python38\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python38\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python38\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python38\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python38-32\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python38-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python38-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python38-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python38-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files (x86)\Python38-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python37\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python37\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python37\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python37\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python37-32\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python37-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python37-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python37-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files (x86)\Python37-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python36\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python36\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python36\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python36\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python36-32\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python36-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python36-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python36-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python36-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files (x86)\Python36-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if the py launcher can be used to find Python 3 npm ERR! gyp ERR! find Python - "py.exe" is not in PATH or produced an error npm ERR! gyp ERR! find Python npm ERR! gyp ERR! find Python ********************************************************** npm ERR! gyp ERR! find Python You need to install the latest version of Python. npm ERR! gyp ERR! find Python Node-gyp should be able to find and use Python. If not, npm ERR! gyp ERR! find Python you can try one of the following options: npm ERR! gyp ERR! find Python - Use the switch --python="C:\Path\To\python.exe" npm ERR! gyp ERR! find Python (accepted by both node-gyp and npm) npm ERR! gyp ERR! find Python - Set the environment variable PYTHON npm ERR! gyp ERR! find Python - Set the npm configuration variable python: npm ERR! gyp ERR! find Python npm config set python "C:\Path\To\python.exe" npm ERR! gyp ERR! find Python For more information consult the documentation at: npm ERR! gyp ERR! find Python https://github.com/nodejs/node-gyp#installation npm ERR! gyp ERR! find Python ********************************************************** npm ERR! gyp ERR! find Python npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: Could not find any Python installation to use npm ERR! gyp ERR! stack at PythonFinder.fail (C:\Users\andre\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-python.js:330:47) npm ERR! gyp ERR! stack at PythonFinder.runChecks (C:\Users\andre\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-python.js:159:21) npm ERR! gyp ERR! stack at PythonFinder. (C:\Users\andre\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-python.js:228:18) npm ERR! gyp ERR! stack at PythonFinder.execFileCallback (C:\Users\andre\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-python.js:294:16) npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:404:5) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:390:28) npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1064:16) npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5) npm ERR! gyp ERR! System Windows_NT 10.0.22000 npm ERR! gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\andre\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" npm ERR! gyp ERR! cwd C:\Users\andre\AppData\Roaming\npm\node_modules\truffle\node_modules\ganache\node_modules\keccak npm ERR! gyp ERR! node -v v16.13.2 npm ERR! gyp ERR! node-gyp -v v8.4.1 npm ERR! gyp ERR! not ok
  • General advice for what AWS amplify options to choose
    3 projects | /r/aws | 13 Nov 2021
    Did I said AppSync GraphQL completely different with “normal” GraphQL???? In fact, you can’t use GraphQL API or other tools like GraphQL Tools (https://www.graphql-tools.com) to parse AppSync GraphQL files. For example did normal GraphQL have this kind of syntax: “type Order @model @key(fields: ["customerEmail", "createdAt"]) {….” (Pasted from Amplify docs)

What are some alternatives?

When comparing mercurius and graphql-tools you can also consider the following projects:

apollo-server - 🌍  Spec-compliant and production ready JavaScript GraphQL server that lets you develop in a schema-first way. Built for Express, Connect, Hapi, Koa, and more.

graphql-helix - A highly evolved GraphQL HTTP Server 🧬

subscriptions-transport-ws - :arrows_clockwise: A WebSocket client + server for GraphQL subscriptions

graphql-js - A reference implementation of GraphQL for JavaScript

graphql-mesh - The Graph of Everything - Federated architecture for any API service

fastify-hasura - A Fastify plugin to have fun with Hasura.

fastify-jwt - JWT utils for Fastify

graphql-server - A practical GraphQL Server with Modularization and Authentication

graphql-ws - Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.

express-to-fastify-migration - Example applications demonstrating a migration from Express to Fastify.

graphql-faker - 🎲 Mock or extend your GraphQL API with faked data. No coding required.