Introducing Envelop - The GraphQL Plugin System

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • envelop

    Envelop is a lightweight library allowing developers to easily develop, share, collaborate and extend their GraphQL execution layer. Envelop is the missing GraphQL plugin system.

    Make “hard” GraphQL capabilities easy by installing powerful plugins (Caching, Tracing with Prometheus/DataDog/NewRelic/Sentry/OpenTelemetry/ApolloTracing, Loggers, GraphQL-Jit, Persisted Operations, Security with rate-limit/depth-limit/Auth0 and many others from the Plugins Hub)

  • InfluxDB

    Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.

    InfluxDB logo
  • Stack

    Tech Stack developed by The Guild (by the-guild-org)

    We are also helping with that, so if you are migrating to Envelop and not sure what it includes/means for your project - feel free to reach out to us (through GitHub, email or the chat box in our website) and we would love to help you with that.

  • graphql-helix

    A highly evolved GraphQL HTTP Server 🧬

    import { envelop, useSchema, useLogger } from '@envelop/core'; import fastify from 'fastify'; import { processRequest, getGraphQLParameters } from 'graphql-helix'; // This creates the `getEnveloped` function for us. Behind the scense the wrapped functions are created once, here. const getEnveloped = envelop({ plugins: [useSchema(schema), useLogger()], }); const app = fastify(); app.route({ method: ['POST'], url: '/graphql', async handler(req, res) { // Here we can pass the request and make available as part of the "context". // The return value is the a GraphQL-proxy that exposes all the functions. const { parse, validate, contextFactory, execute, schema } = getEnveloped({ req, }); const request = { body: req.body, headers: req.headers, method: req.method, query: req.query, }; const { operationName, query, variables } = getGraphQLParameters(request); // Here, we pass our custom functions to Helix, and it will take care of the rest. const result = await processRequest({ operationName, query, variables, request, schema, parse, validate, execute, contextFactory, }); if (result.type === 'RESPONSE') { res.status(result.status); res.send(result.payload); } else { // You can find a complete example with Subscriptions and stream/defer here: // https://github.com/contrawork/graphql-helix/blob/master/examples/fastify/server.ts res.send({ errors: [{ message: 'Not Supported in this demo' }] }); } }, }); app.listen(3000, () => { console.log(`GraphQL server is running...`); });

  • redwood

    The App Framework for Startups

    Redwood is a great example. We start with a small suggestion PR, and the Redwood team was open for new ideas - so now you can use envelop if you are a Redwood user !

  • graphql-jit

    GraphQL execution using a JIT compiler

    By using useParserCache we make sure to parse every unique operation only once. By using useValidationCache we make sure to validate every unique operation only once. By using useGraphQLJit we replace the default execute function with a just-in-time implementation.

  • graphql-js

    A reference implementation of GraphQL for JavaScript

    perEventContextResolver: suggested in this PR, and almost available in envelop.

  • graphql-spec

    GraphQL is a query language and execution engine tied to any backend service.

    @oneOf: suggested in this PR, and now available in envelop.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • graphql-public-schema-filter

    Filter your GraphQL graph into a subgraph. Code-first & SDL-first!

    Public schema filter - for creating a simple GraphQL schema that can be used for public APIs based on existing GraphQL schema.

  • loopback-next

    LoopBack makes it easy to build modern API applications that require complex integrations.

    During that process, we also start to work with other frameworks and support them with that: Loopback, NestJS, Parse, Apollo Server and others.

  • nestjs-graphql

    GraphQL (TypeScript) module for Nest framework (node.js) 🍷 (by PabloSzx)

    During that process, we also start to work with other frameworks and support them with that: Loopback, NestJS, Parse, Apollo Server and others.

  • parse-server

    Parse Server for Node.js / Express

    During that process, we also start to work with other frameworks and support them with that: Loopback, NestJS, Parse, Apollo Server and others.

  • 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.

    During that process, we also start to work with other frameworks and support them with that: Loopback, NestJS, Parse, Apollo Server and others.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Monoliths to Microservices using the Strangler Pattern

    3 projects | dev.to | 11 May 2023
  • What to choose for backend

    4 projects | /r/node | 5 Jun 2022
  • The Guild acquires Stellate

    1 project | dev.to | 10 Sep 2024
  • parse-server VS wabe - a user suggested alternative

    2 projects | 8 Sep 2024
  • Getting Started with GraphQL

    2 projects | dev.to | 31 Jul 2024