mercurius
    TypeScript icon, indicating that this package has built-in type declarations

    9.1.0 • Public • Published

    Mercurius Logo

    mercurius

    CI workflow

    Mercurius is a GraphQL adapter for Fastify

    Features:

    • Caching of query parsing and validation.
    • Automatic loader integration to avoid 1 + N queries.
    • Just-In-Time compiler via graphql-jit.
    • Subscriptions.
    • Federation support.
    • Federated subscriptions support.
    • Gateway implementation, including Subscriptions.
    • Batched query support.
    • Customisable persisted queries.

    Docs

    Install

    npm i fastify mercurius graphql
    # or
    yarn add fastify mercurius graphql

    The previous name of this module was fastify-gql (< 6.0.0).

    Quick Start

    'use strict'
    
    const Fastify = require('fastify')
    const mercurius = require('mercurius')
    
    const app = Fastify()
    
    const schema = `
      type Query {
        add(x: Int, y: Int): Int
      }
    `
    
    const resolvers = {
      Query: {
        add: async (_, { x, y }) => x + y
      }
    }
    
    app.register(mercurius, {
      schema,
      resolvers
    })
    
    app.get('/', async function (req, reply) {
      const query = '{ add(x: 2, y: 2) }'
      return reply.graphql(query)
    })
    
    app.listen(3000)

    Examples

    Check GitHub repo for more examples.

    Acknowledgements

    The project is kindly sponsored by:

    The Mercurius name was gracefully donated by Marco Castelluccio. The usage of that library was described in https://hacks.mozilla.org/2015/12/web-push-notifications-from-irssi/, and you can find that codebase in https://github.com/marco-c/mercurius.

    License

    MIT

    Keywords

    none

    Install

    npm i mercurius

    DownloadsWeekly Downloads

    8,113

    Version

    9.1.0

    License

    MIT

    Unpacked Size

    914 kB

    Total Files

    140

    Last publish

    Collaborators

    • matteo.collina
    • jonnydgreen