GraphQL

repo: chentsulin/awesome-graphql
category: Miscellaneous related: Node Js · React


awesome-graphql [

Awesome list of GraphQL

If you want to contribute to this list (please do), send me a pull request.

Table of Contents

<a name="spec" />

Specifications

  • GraphQL - Working draft of the specification for GraphQL.
  • GraphQL over HTTP - Working draft of "GraphQL over HTTP" specification.
  • GraphQL Relay - Relay-compliant GraphQL server specification.
  • OpenCRUD - OpenCRUD is a GraphQL CRUD API specification for databases.
  • Apollo Federation - Apollo Federation specification
  • GraphQXL - GraphQXL is an extension of the GraphQL language with some additional features that help creating big and scalable server-side schemas.
  • GraphQL Scalars - hosts community defined custom Scalar specifications for use with @specifiedBy.

<a name="foundation" />

Foundations

<a name="community" />

Communities

  • Discord - GraphQL - Official GraphQL.org discord channel.
  • GraphQL Weekly - A weekly newsletter highlighting resources and news from the GraphQL community.
  • Apollo GraphQL Community - Connect with other developers and share knowledge about every part of the Apollo GraphQL platform.
  • Discord - Reactiflux - Join #help-graphql on the Reactiflux Discord server.
  • Facebook - Group for discussions, articles and knowledge sharing.
  • X - Use the hashtag #graphql.
  • StackOverflow - Questions and answers. Use the tag graphql.
  • GraphQL APIs - A collective list of public GraphQL APIs.
  • /r/GraphQL - A Subreddit for interesting and informative GraphQL content and discussions.

<a name="meetup" />

Meetups

<a name="impl" />

Implementations

<a name="js" />

JavaScript/TypeScript

  • graphql-js - A reference implementation of GraphQL for JavaScript.
  • graphql-jit - GraphQL execution using a JIT compiler.
  • Grafast - a cutting edge planning and execution engine for GraphQL.

Clients

  • apollo-client - A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.
  • graphql-request - A minimal GraphQL client for Node and browsers.
  • typescript-graphql-request - Use GraphQL Request as a fully typed SDK.
  • graphql-zeus - GraphQL Zeus creates autocomplete client library for [JavaScript](/@harrisonqian/awesome/wiki/programming-languages/javascript) or TypeScript which provides autocompletion for strongly typed queries.
  • graphqurl - curl for GraphQL with autocomplete, subscriptions and GraphiQL. Also a dead-simple universal javascript GraphQL client.
  • aws-amplify - A client library developed by Amazon for caching, analytics and more that includes a way to fetch GraphQL queries.
  • gqty - A No GraphQL client for TypeScript
  • genql - Type safe TypeScript client for any GraphQL API.
Frontend Framework Integrations
React
  • react-apollo - The core @apollo/client library provides built-in integration with React.
  • relay - Relay is a JavaScript framework for building data-driven React applications.
  • urql - A simple caching GraphQL client for React.
  • graphql-hooks - Minimal hooks-first GraphQL client with caching and server-side rendering support.
  • mst-gql - Bindings for mobx-state-tree and GraphQL.
  • micro-graphql-react - A lightweight utility for adding GraphQL to React. components. Includes simple caching and uses GET requests that could additionally be cached through a service-worker.
  • @gqty/react - A No GraphQL client for TypeScript

Servers

  • 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.
  • hapi-graphql - Create a GraphQL HTTP server with Hapi.
  • hapi-plugin-graphiql - HAPI plugin for GraphiQL integration.
  • graphql-api-koa - GraphQL Koa middleware that implements GraphQL.js from scratch and supports native ESM.
  • koa-graphql - GraphQL Koa Middleware.
  • graphql-koa-scripts - GraphQL Koa 1 file simplified. usefull for quick test
  • gql - Universal GraphQL HTTP middleware for Deno.
  • mercurius - GraphQL plugin for Fastify.
  • graphql-yoga - Fully-featured GraphQL Server with focus on easy setup, performance and great developer experience.
  • graphitejs - Framework NodeJS for GraphQL.
  • graphql-helix - A highly evolved GraphQL HTTP Server.
  • pylon - Write full-feature APIs with just functions. No more boilerplate code, no more setup. Just write functions and deploy.
  • modus - Serverless runtime based on WebAssembly that delivers auto-generated GraphQL APIs.
Databases & ORMs
PubSub
  • graphql-ably-pubsub - Ably PubSub implementation for GraphQL to publish mutation updates and subscribe to the result through a subscription query.

Custom Scalars

  • graphql-scalars - A library of custom GraphQL Scalars for creating precise type-safe GraphQL schemas.

Type

  • type-graphql - Create GraphQL schema and resolvers with TypeScript, using classes and decorators!
  • graphql-nexus - Code-First, Type-Safe, GraphQL Schema Construction.
  • graphql-code-generator: GraphQL code generator with flexible support for custom plugins and templates like TypeScript (frontend and backend), React Hooks, resolvers signatures and more.
  • pothos - Pothos is a plugin based GraphQL schema builder for typescript. It makes building graphql schemas in typescript easy, fast and enjoyable.
  • garph - Garph is full-stack framework for building type-safe GraphQL APIs in TypeScript.
  • gqloom - GQLoom is a GraphQL weaver for TypeScript/JavaScript that weaves GraphQL schema and resolvers using Valibot, Zod, or Yup.
  • fast-graphql - Graphql Tools to Structure, Combine Resolvers and Merge Schema Definitions for Node.js, Next.Js and Graphql Apollo server
  • graphql-to-type - GraphQL query parser written entirely in TypeScript's type system for creating interfaces based on provided query
  • gql.tada - GraphQL document authoring library, inferring the result and variables types of GraphQL queries and fragments in the TypeScript type system.

Miscellaneous

  • graphql-tools - Tool library for building and maintaining GraphQL-JS servers.
  • graphql-tag - A JavaScript template literal tag that parses GraphQL queries.
  • load-gql - A tiny, zero dependency GraphQL schema loader from files and folders.
  • graphql-compose - Tool which allows you to construct flexible graphql schema from different data sources via plugins.
  • graphql-modules - Separate GraphQL server into smaller, reusable parts by modules or features.
  • graphql-shield - A library that helps creating a permission layer for a graphql api.
  • graphql-shield-generator - Emits a GraphQL Shield from your GraphQL schema.
  • graphqlgate - A GraphQL rate-limiting library with query complexity analysis for Node.js
  • graphql-let - A webpack loader to import type-protected codegen results directly from GraphQL documents
  • graphql-config - One configuration for all your GraphQL tools (supported by most tools, editors & IDEs).
  • graphql-cli - A command line tool for common GraphQL development workflows.
  • graphql-toolkit - A set of utils for faster development of GraphQL tools (Schema and documents loading, Schema merging and more).
  • graphql-mesh - use GraphQL query language to access data in remote APIs that don't run GraphQL (and also ones that do run GraphQL).
  • sofa - Generate REST API from your GraphQL API.
  • graphback - Framework and CLI to add a GraphQLCRUD API layer to a GraphQL server using data models.
  • graphql-middleware - Split up your GraphQL resolvers in middleware functions.
  • [graphql-relay-js](https://github.com/graphql/graphql-relay-js) - A library to help construct a graphql-js server supporting react-relay.
  • graphql-normalizr - Normalize GraphQL responses for persisting in the client cache/state.
  • babel-plugin-graphql - Babel plugin that compile GraphQL tagged template strings.
  • eslint-plugin-graphql - An ESLint plugin that checks your GraphQL strings against a schema.
  • graphql-ws - Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.
  • graphql-live-query - Realtime GraphQL Live Queries with JavaScript.
  • GraphVinci - An interactive schema visualizer for GraphQL APIs.
  • supertest-graphql - Extends supertest to easily test a GraphQL endpoint
  • schemathesis - Runs arbitrary queries matching a GraphQL schema to find server errors.
  • microfiber - Query and manipulate GraphQL introspection query results in useful ways.
  • graphql-armor - An instant security layer for production GraphQL Endpoints.
  • goctopus - an incredibly fast GraphQL discovery & fingerprinting toolbox.
  • GraphQL Constraint Directive - Allows using @constraint as a directive to validate input data. Inspired by Constraints Directives RFC and OpenAPI
  • Validator.js Wrapper Directive - A comprehensive list of validator directive wraps Validator.js functionalities
  • WunderGraph Cosmo - The Open-Source GraphQL Federation Solution with Full Lifecycle API Management for (Federated) GraphQL. Schema Registry, composition checks, analytics, metrics, tracing and routing.
  • graphql-go-tools - A graphQL Router / API Gateway framework written in Golang, focussing on correctness, extensibility, and high-performance. Supports Federation v1 & v2, Subscriptions & more.
  • graphql-sunset - Quickly and easily add support for the Sunset header to your GraphQL server, to better communicate upcoming breaking changes.

<a name="js-example" />

JavaScript Examples

<a name="ts-example" />

TypeScript Examples

<a name="rb" />

Ruby

  • graphql-ruby - Ruby implementation of Facebook's GraphQL.
  • graphql-batch - A query batching executor for the graphql gem.
  • graphql-auth - A JWT auth wrapper working with devise.
  • agoo - Ruby web server that implements Facebook's GraphQL.
  • GQLi - A GraphQL client and DSL. Allowing to write queries in native Ruby.

<a name="rb-example" />

Ruby Examples

  • [graphql-ruby-demo](https://github.com/rmosolgo/graphql-ruby-demo) - Use graphql-ruby to expose a Rails app.
  • [github-graphql-rails-example](https://github.com/github/github-graphql-rails-example) - Example Rails app using GitHub's GraphQL API.
  • relay-on-rails - Barebones starter kit for Relay application with Rails GraphQL server.
  • [relay-rails-blog](https://github.com/gauravtiwari/relay-rails-blog) - A graphql, relay and standard rails application powered demo weblog.
  • to_eat_app - A sample graphql/rails/relay application with a related 3-part article series.
  • agoo-demo - Use of the Agoo server to demonstrate a simple GraphQL application.
  • rails-devise-graphql - A rails 6 boilerplate with devise, graphql & JWT auth.

<a name="php" />

PHP

  • graphql-php - A PHP port of GraphQL reference implementation.
  • [graphql-relay-php](https://github.com/ivome/graphql-relay-php) - Relay helpers for webonyx/graphql-php implementation of GraphQL.
  • lighthouse - A PHP package that allows to serve a GraphQL endpoint from your Laravel application.
  • graphql-laravel - Laravel wrapper for Facebook's GraphQL.
  • overblog/graphql-bundle - This bundle provides tools to build a complete GraphQL server in your Symfony App. Supports react-relay.
  • wp-graphql - GraphQL API for WordPress.
  • graphqlite - Framework agnostic library that allows you to write GraphQL server by annotating your PHP classes.
  • siler - Plain-old functions providing a declarative API for GraphQL servers with Subscriptions support.
  • graphql-request-builder - Builds request payload in GraphQL structure.
  • drupal/graphql - Craft and expose a GraphQL schema for Drupal 9 and 10.
  • jerowork/graphql-schema-builder - Easily build your GraphQL schema for webonyx/graphql-php using PHP attributes instead of large configuration arrays.

<a name="php-example" />

PHP Examples

<a name="py" />

Python

<a name="py-example" />

Python Examples

<a name="java" />

Java

  • graphql-java - GraphQL Java implementation.
  • DGS Framework - A GraphQL server framework for Spring Boot, developed by Netflix.
  • [graphql-java-generator](https://github.com/graphql-java-generator) - A Maven plugin and a Gradle plugin that can generate both the Client and the Server (POJOs and utility classes). The server part is based on graphql-java, and hides all its boilerplate codes.
  • [gaphql-java-type-generator](https://github.com/graphql-java/graphql-java-type-generator) - Auto-generates types for use with GraphQL Java
  • schemagen-graphql - Schema generation and execution package that turns POJO's into a GraphQL Java queryable set of objects. Enables exposing any service as a GraphQL service using Annotations.
  • [graphql-java-annotations](https://github.com/Enigmatis/graphql-java-annotations) - Provides annotations-based syntax for schema definition with GraphQL Java.
  • [graphql-java-tools](https://github.com/graphql-java-kickstart/graphql-java-tools) - Schema-first graphql-java convenience library that makes it easy to bring your own implementations as data resolvers. Inspired by graphql-tools for JS.
  • [graphql-java-codegen-maven-plugin](https://github.com/kobylynskyi/graphql-java-codegen-maven-plugin) - Schema-first maven plugin for generating Java types and Resolver interfaces. Works perfectly in conjunction with graphql-java-tools. Inspired by swagger-codegen-maven-plugin.
  • [graphql-java-codegen-gradle-plugin](https://github.com/kobylynskyi/graphql-java-codegen-gradle-plugin) - Schema-first gradle plugin for generating Java types and Resolver interfaces. Works perfectly in conjunction with graphql-java-tools. Inspired by gradle-swagger-generator-plugin.
  • [graphql-java-servlet](https://github.com/graphql-java-kickstart/graphql-java-servlet) - A framework-agnostic java servlet for exposing graphql-java query endpoints with GET, POST, and multipart uploads.
  • manifold-graphql - Comprehensive GraphQL client use. Schema-first. Type-safe GraphQL types, queries, and results, no code generators, no POJOs, no annotations. Excellent IDE support with IntelliJ IDEA and Android Studio. See the Java example below.
  • spring-graphql-common - Spring Framework GraphQL Library.
  • graphql-spring-boot - GraphQL and GraphiQL Spring Framework Boot Starters.
  • vertx-graphql-service-discovery - Asynchronous GraphQL service discovery and querying for your microservices.
  • vertx-dataloader - Port of Facebook DataLoader for efficient, asynchronous batching and caching in clustered GraphQL environments.
  • graphql-spqr - Java 8+ API for rapid development of GraphQL services.
  • [Light Java GraphQL](https://github.com/networknt/light-graphql-4j): A lightweight, fast microservices framework with all cross-cutting concerns addressed and ready to plug in GraphQL schema.
  • Elide: A Java library that can expose a JPA annotated data model as a GraphQL service over any relational database.
  • federation-jvm - Apollo Federation on the JVM.
  • graphql-orchestrator-java GraphQL Orchestrator/Gateway library that supports Schema Stitching and Apollo Federation directives to combine schema from multiple GraphQL microservices into a single unified schema.
  • [graphql-java-extended-validation](https://github.com/graphql-java/graphql-java-extended-validation) - Provides extended validation of fields and field arguments for graphql-java.
  • dgs-extended-formatters - An experimental set of DGS Directives for common formatting use-cases.

Custom Scalars

  • [graphql-java-datetime](https://github.com/donbeave/graphql-java-datetime) - GraphQL ISO Date is a set of RFC 3339 compliant date/time scalar types to be used with graphql-java.
  • [graphql-java-extended-scalars](https://github.com/graphql-java/graphql-java-extended-scalars) - Extended scalars for graphql-java.

<a name="java-example" />

Java Examples

  • [light-java-graphql examples](https://github.com/networknt/light-example-4j/tree/master/graphql) - Examples of Light Java GraphQL and tutorials.
  • graphql-spqr-samples - An example GraphQL server written with Spring MVC and GraphQL-SPQR.
  • manifold-graphql sample - A simple application, both client and server, demonstrating the Manifold GraphQL library.
  • [graphql-java-kickstart_samples](https://github.com/graphql-java-kickstart/samples) - Samples for using the GraphQL Java Kickstart projects.
  • [graphql-java-kickstart-federation-example](https://github.com/setchy/graphql-java-kickstart-federation-example) - A GraphQL Java Kickstart federation example.
  • dgs-federation-example - A Netflix DGS federation example.
  • Spring Boot backend tutorial - A tutorial creating a GraphQL server and client using Spring Boot and Netflix DGS.

<a name="kotlin" />

Kotlin

  • graphql-kotlin - GraphQL Kotlin implementation.
  • manifold-graphql - Comprehensive GraphQL client use. Schema-first. Type-safe GraphQL types, queries, and results, no code generators, no POJOs, no annotations. Excellent IDE support with IntelliJ IDEA and Android Studio. See the Kotlin example below.
  • KGraphQL: Pure Kotlin implementation to setup a GraphQL server.
  • Kobby - Codegen plugin of Kotlin DSL Client by GraphQL schema. The generated DSL supports execution of complex GraphQL queries, mutation and subscriptions in Kotlin with syntax similar to native GraphQL syntax.
  • Graphkt - A DSL based graphql server library for kotlin, backed by graphql-java.

<a name="kotlin-example" />

Kotlin Examples

  • manifold-graphql sample - A simple GraphQL application, both client and server, demonstrating the Manifold GraphQL library with Kotlin.

<a name="c" />

C/C++

  • libgraphqlparser - A GraphQL query parser in C++ with C and C++ APIs.
  • agoo-c - A high performance GraphQL server written in C. benchmarks
  • cppgraphqlgen - C++ GraphQL schema service generator.
  • CaffQL - Generates C++ client types and request/response serialization from a GraphQL introspection query.

<a name="go" />

Go

  • graphql - An implementation of GraphQL for Go follows graphql-js
  • graphql-go - GraphQL server with a focus on ease of use.
  • gql - Code first graphql (graphql-go/graphql) schema builder.
  • gqlgen - Go generate based graphql server library.
  • [graphql-relay-go](https://github.com/graphql-go/relay) - A Go/Golang library to help construct a server supporting react-relay.
  • graphjin: Build APIs in 5 minutes with GraphQL. An instant GraphQL to SQL compiler.
  • graphql-go-tools - A graphQL Router / API Gateway framework written in Golang, focussing on correctness, extensibility, and high-performance. Supports Federation v1 & v2, Subscriptions & more.
  • Thunder - A scalable microservices framework powered by Go, gRPC-Gateway, Prisma, and Kubernetes. It exposes REST, gRPC and Graphql
  • grpc-graphql-gateway - A protoc plugin that generates graphql execution code from Protocol Buffers. <a name="go-example" />

Go Examples

  • [golang-relay-starter-kit](https://github.com/sogko/golang-relay-starter-kit) - Barebones starting point for a Relay application with Golang GraphQL server.
  • [todomvc-relay-go](https://github.com/sogko/todomvc-relay-go) - Port of the React/Relay TodoMVC app, driven by a Golang GraphQL backend.
  • go-graphql-subscription-example - A GraphQL schema and server that demonstrates GraphQL subscriptions (over Websocket) to consume Apache Kafka messages.
  • Go Backend Tutorial - A tutorial showing how to make a Go GraphQL server and client using code generation.

<a name="scala" />

Scala

<a name="scala-example" />

Scala Examples

<a name="dotnet" />

.NET

  • graphql-dotnet - GraphQL for .NET.
  • graphql-net - GraphQL to IQueryable for .NET.
  • Hot Chocolate - GraphQL server for .Net Core and .NET Framework.
  • Snowflaqe - Type-safe GraphQL code generator for F# and Fable
  • EntityGraphQL - library to build a GraphQL API on top of data model with the extensibility to bring multiple data sources together in the single GraphQL schema.
  • ZeroQL - type-safe GraphQL client with Linq-like interface for C#

<a name="net-example" />

.NET Examples

<a name="elixir" />

Elixir


truncated — full list on GitHub

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?