awesome-graphql Awesome

Awesome list of GraphQL

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

Table of Contents

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

Foundations

Communities

Meetups

Implementations

JavaScript/TypeScript

  • graphql-js - A reference implementation of GraphQL for JavaScript.
  • graphql-jit - GraphQL execution using a JIT compiler.

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 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.
Frontend Framework Integrations
  • vue-apollo - Apollo/GraphQL integration for VueJS.
  • apollo-angular - A fully-featured, production ready caching GraphQL client for Angular and every GraphQL server.
  • svelte-apollo - Svelte integration for Apollo GraphQL.
  • ember-apollo-client - An ember-cli addon for Apollo Client and GraphQL.
  • apollo-elements - GraphQL web components that work in any frontend framework.
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.
  • gqless - A GraphQL client without queries
  • 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.

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.
  • express-graphql - GraphQL Express Middleware.
  • 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.
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.
  • graphql-tools-types - Custom GraphQL types for use with GraphQL-Tools (Void, Int, Float, String, Date, UUID, JSON).

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.
  • giraphql - A plugin based schema builder for creating code-first GraphQL schemas in TypeScript.

Miscellaneous

  • graphql-tools - Tool library for building and maintaining GraphQL-JS servers.
  • graphql-tag - A JavaScript template literal tag that parses GraphQL queries.
  • 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-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 - 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.

JavaScript Examples

TypeScript Examples

Ruby

  • graphql-ruby - Ruby implementation of Facebook's GraphQL.
  • graphql-client - A Ruby library for declaring, composing and executing GraphQL queries.
  • 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.

Ruby Examples

PHP

  • graphql-php - A PHP port of GraphQL reference implementation.
  • 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.

PHP Examples

Python

Python Examples

Java

Custom Scalars

Java Examples

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.

Kotlin Examples

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

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.

Go

  • graphql - An implementation of GraphQL for Go follows graphql-js
  • graphql-go - GraphQL server with a focus on ease of use.
  • gqlgen - Go generate based graphql server library.
  • graphql-relay-go - 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.

Go Examples

Scala

  • sangria - Scala GraphQL server implementation.
  • sangria-relay - Sangria Relay Support.
  • caliban - Caliban is a purely functional library for creating GraphQL backends in Scala.

Scala Examples

.NET

Elixir

Elixir Examples

Haskell

SQL

  • GraphpostgresQL - GraphQL for Postgres.
  • sql-to-graphql - Generate a GraphQL API based on your SQL database structure.
  • PostGraphile - Lightning-fast GraphQL APIs for PostgreSQL: highly customisable; extensible via plugins; realtime.
  • Hasura - Hasura gives Instant Realtime GraphQL APIs over PostgreSQL. Works with an existing database too.
  • subZero - GraphQL & REST API for your database

Lua

Elm

Clojure

  • graphql-clj - A Clojure library designed to provide GraphQL implementation.
  • Lacinia - GraphQL implementation in pure Clojure.
  • graphql-query - Clojure(Script) GraphQL query generation.

Clojure Examples

Swift

  • GraphQL - The Swift implementation for GraphQL.

OCaml

Android

  • apollo-android - 📟 A strongly-typed, caching GraphQL client for Android, written in Java.
  • 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.

Android Examples

iOS

  • apollo-ios - 📱 A strongly-typed, caching GraphQL client for iOS, written in Swift.
  • ApolloDeveloperKit - Apollo Client Devtools bridge for [Apollo iOS].
  • Graphaello - Type Safe GraphQL directly from SwiftUI.

iOS Examples

ClojureScript

  • re-graph - A GraphQL client for ClojureScript with bindings for re-frame applications.
  • graphql-query - Clojure(Script) GraphQL query generation.

ReasonML

  • reason-apollo - ReasonML binding for Apollo Client.
  • ReasonQL - Type-safe and simple GraphQL Client for ReasonML developers.
  • reason-urql - ReasonML binding for urql Client.

Dart

Rust

  • async-graphql - High-performance server-side library that supports all GraphQL specifications.
  • juniper - GraphQL server library for Rust.
  • graphql-client - GraphQL client library for Rust with WebAssembly (wasm) support.
  • graphql-parser - A parser, formatter and AST for the GraphQL query and schema definition language for Rust.

Rust Examples

D (dlang)

R (Rstat)

  • ghql - General purpose GraphQL R client.
  • graphql - Bindings to the 'libgraphqlparser' C++ library. Parses GraphQL syntax and exports the AST in JSON format.
  • gqlr - R GraphQL Implementation.

Julia

  • Diana.jl - A Julia GraphQL client/server implementation.
  • GraphQLClient.jl - A Julia GraphQL client for seamless integration with a server.

Crystal

Tools

Tools - Editors & IDEs & Explorers

  • GraphiQL - An in-browser IDE for exploring GraphQL.
  • GraphQL Editor - Visual Editor & GraphQL IDE.
  • GraphQL Voyager - Represent any GraphQL API as an interactive graph.
  • Altair GraphQL Client - A beautiful feature-rich GraphQL Client for all platforms.
  • Insomnia - A full-featured API client with first-party GraphQL query editor.
  • Postman - An HTTP Client that supports editing GraphQL queries.
  • Apollo Sandbox - The quickest way to navigate and test your GraphQL endpoints.
  • GraphQL Birdseye – View any GraphQL schema as a dynamic and interactive graph.
  • AST Explorer - Select "GraphQL" at the top, explore the GraphQL AST and highlight different parts by clicking in the query.
  • Firecamp - GraphQL Playground - The fastest collaborative GraphQL playground.

Tools - Security

Tools - Browser Extensions

Tools - Prototyping

  • GraphQL Faker - 🎲 Mock or extend your GraphQL API with faked data. No coding required.
  • GraphQL Designer - A developer's web-app tool to rapidly prototype a full stack CRUD implementation of GraphQL with React.

Tools - Docs

  • graphdoc - Static page generator for documenting GraphQL Schema.
  • gqldoc - The easiest way to make API documents for GraphQL.

Tools - Editor Plugins

  • Apollo GraphQL VSCode Extension - Rich editor support for GraphQL client and server development that seamlessly integrates with the Apollo platform
  • js-graphql-intellij-plugin - GraphQL language support for IntelliJ IDEA and WebStorm, including Relay.QL tagged templates in JavaScript and TypeScript.
  • vim-graphql - A Vim plugin that provides GraphQL file detection and syntax highlighting.
  • Apollo Workbench - Tooling to help you develop and mock federated schemas using Apollo Federation.
  • graphql-autocomplete - Autocomplete and lint from a GraphQL endpoint in Atom.

Tools - Miscellaneous

  • graphql-code-generator - GraphQL code generator based on schema and documents.
  • swagger-to-graphql - GraphQL types builder based on REST API described in Swagger. Allows to migrate to GraphQL from REST for 5 minutes
  • ts-graphql-plugin - A language service plugin complete and validate GraphQL query in TypeScript template strings.
  • apollo-tracing - GraphQL extension that enables you to easily get resolver-level performance information as part of a GraphQL response.
  • json-graphql-server - Get a full fake GraphQL API with zero coding in less than 30 seconds, based on a JSON data file.
  • Prisma - Turn your database into a GraphQL API. Prisma lets you design your data model and have a production ready GraphQL API online in minutes.
  • tuql - Automatically create a GraphQL server from any sqlite database.
  • Bit - Organize GraphQL API as components to be consumed with NPM or modified from any project, example-explanation).
  • openapi-to-graphql - Take any OpenAPI Specification (OAS) or swagger and create a GraphQL interface - Two minute video and resources here
  • Retool – Internal tools builder on top of your GraphQL APIs + GraphQL IDE with a schema explorer.
  • dataloader-codegen - An opinionated JavaScript library for automatically generating predictable, type safe DataLoaders over a set of resources (e.g. HTTP endpoints).
  • raphql-inspector: alidate schema, get schema change notifications, validate operations, find breaking changes, look for similar types, schema coverage.

Databases

Services

  • AWS AppSync - Scalable managed GraphQL service with subscriptions for building real-time and offline-first apps
  • FakeQL - GraphQL API mocking as a service ... because GraphQL API mocking should be easy!
  • Moesif API Analytics - A GraphQL analaytics and monitoring service to find functional and performance issues.
  • Booster framework - An open-source framework that makes you completely forget about infrastructure and allows you to focus exclusively on your business logic. It autogenerates a GraphQL API for your models, supporting mutations, queries, and subscriptions.
  • Hypi - Low-code, scalable, serverless backend as a service. Your GraphQL & REST over GraphQL backend in minutes.
  • Nhost - Open source Firebase alternative with GraphQL
  • Saleor - GraphQL-first headless e-commerce platform.
  • Stargate - Open source data gateway currently supporting Apache Cassandra® and DataStax Enterprise.

CDN

  • GraphCDN - GraphQL CDN for caching GraphQL APIs.

CMS

  • DatoCMS - CDN-based GraphQL based Headless Content Management System.
  • GraphCMS - GraphQL based Headless Content Management System.
  • Cosmic - GraphQL-powered Headless CMS and API toolkit.

Books

Videos

Podcasts

Style Guides

  • Shopify GraphQL Design Tutorial - This tutorial was originally created by Shopify for internal purposes. It's based on lessons learned from creating and evolving production schemas at Shopify over almost 3 years.
  • Gitlab GraphQL API Style Guide - This document outlines the style guide for the GitLab GraphQL API.

Blogs

Blogs - Security

Posts

Workshoppers

  • How to GraphQL - Fullstack Tutorial Website with Tracks for all Major Frameworks & Languages including React, Apollo, Relay, JavaScript, Ruby, Java, Elixir and many more.
  • Apollo Odyssey - Apollo's free interactive learning platform.
  • learning-graphql - An attempt to learn GraphQL.

License

CC0

To the extent possible under law, Chen-Tsu Lin has waived all copyright and related or neighboring rights to this work.