mercurius

Fastify GraphQL adapter with subscription support

mercurius downloads mercurius version mercurius license

mercuriusPaquetes similares:
Tendencia de descargas de npm
3 Años
🌟 Muestra el gráfico de uso en tiempo real en el README.md de mercurius, simplemente copia el código a continuación.
## Usage Trend
[![Usage Trend of mercurius](https://npm-compare.com/img/npm-trend/THREE_YEARS/mercurius.png)](https://npm-compare.com/mercurius#timeRange=THREE_YEARS)
Cumulative GitHub Star Trend
🌟 Muestra el gráfico de tendencia de GitHub Stars en el README.md de mercurius, simplemente copia el código a continuación.
## GitHub Stars Trend
[![GitHub Stars Trend of mercurius](https://npm-compare.com/img/github-trend/mercurius.png)](https://npm-compare.com/mercurius)
Detalle de estadísticas
Paquete
Descargas
Stars
Tamaño
Issues
Publicación
Licencia
mercurius75,1152,450706 kB63hace un mesMIT
README para mercurius

Mercurius Logo

mercurius

CI workflow NPM version NPM downloads neostandard javascript style

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 via @mercuriusjs/federation, including Subscriptions.
  • Gateway implementation via @mercuriusjs/gateway, 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({ port: 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