# awesome-graphql

> Awesome list of GraphQL

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

## Table of Contents

- awesome-graphql
  - Table of Contents
  - Specifications
  - Foundations
  - Communities
  - Meetups
  - Implementations
    - JavaScript/TypeScript
      - Clients
        - Frontend Framework Integrations
          - React
      - Servers
        - Databases & ORMs
        - PubSub
      - Custom Scalars
      - Type
      - Miscellaneous
      - JavaScript Examples
      - TypeScript Examples
    - Ruby
      - Ruby Examples
    - PHP
      - PHP Examples
    - Python
      - Python Examples
    - Java
      - Custom Scalars
      - Java Examples
    - Kotlin
      - Kotlin Examples
    - C/C++
    - Go
      - Go Examples
    - Scala
      - Scala Examples
    - .NET
      - .NET Examples
    - Elixir
      - Elixir Examples
    - Haskell
    - SQL
    - Lua
    - Elm
    - Clojure
      - Clojure Examples
    - Swift
    - OCaml
    - Android
      - Android Examples
    - iOS
      - iOS Examples
    - ClojureScript
    - ReasonML
    - Dart
    - Rust
      - Rust Examples
    - D (dlang)
    - R (Rstat)
    - Julia
    - Crystal
    - Ballerina
      - Ballerina Samples
  - Tools
    - Tools - Editors & IDEs & Explorers
    - Tools - Testing
    - Tools - Security
    - Tools - Browser Extensions
    - Tools - Prototyping
    - Tools - Docs
    - Tools - Editor Plugins
    - Tools - Miscellaneous
  - Databases
  - Services
    - CDN
    - CMS
  - Books
  - Videos
  - Podcasts
  - Style Guides
  - Blogs
    - Blogs - Security
  - Posts
  - Tutorials
  - License

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

## Foundations

- GraphQL Foundation - GraphQL Foundation under the Linux Foundation

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

## Meetups

- Relay Meetup - A global, online meetup on Relay, the GraphQL client.
- Amsterdam
- Bangalore
- Berlin
- Buenos Aires
- Copenhagen
- Dallas-Fort Worth
- Hamburg
- London
- Melbourne
- Munich
- New York City
- San Francisco
- Seattle
- Sydney
- Tel Aviv
- Wrocław
- Singapore
- Zurich

## 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.
- gqty - A No GraphQL client for TypeScript
- genql - Type safe TypeScript client for any GraphQL API.

##### 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.
- sveltekit-kitql - A set of tools, helping you building efficient apps in a fast way with SvelteKit and GraphQL.

###### 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

- graphql-sequelize - Sequelize helpers for GraphQL.
- graphql-bookshelf - Some help defining GraphQL schema around BookshelfJS models.
- join-monster - A GraphQL-to-SQL query execution layer for batch data fetching.

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

#### JavaScript Examples

- React Starter Kit - front-end starter kit using React, Relay, GraphQL, and JAM stack architecture.
- SWAPI GraphQL Wrapper - A GraphQL schema and server wrapping SWAPI.
- Relay TodoMVC - Relay TodoMVC with routing.
- Apollo Client documentation - Documentation and example for building GraphQL apps using apollo client.
- Apollo Server tools documentation - Documentation, tutorial and examples for building GraphQL server and connecting to SQL, MongoDB and REST endpoints.
- F8 App 2017 - Source code of the official F8 app of 2016, powered by React Native and other Facebook open source projects.
- Apollo React example for Github GraphQL API - Usage Examples Apollo React for Github GraphQL API with create-react-app.
- Next.js TypeScript and GraphQL Example - A type-protected GraphQL example on Next.js running graphql-codegen under the hood
- GraphQL StackBlitz Starter – A live, editable demo spinning up in about 2 seconds and running in a browser.
- NAPERG - Fullstack Boilerplate GraphQL. Made with React & Prisma + authentication & roles.
- VulcanJS - The full-stack React+GraphQL framework
- RAN Toolkit - Production-ready toolkit/boilerplate with support for GraphQL, SSR, Hot-reload, CSS-in-JS, caching, and more.

#### TypeScript Examples

- Node.js API Starter - Yarn v2 based monorepo template (code-first GraphQL API, PostgreSQL, PnP, Zero-install, serverless).
- Next.js Apollo TypeScript Starter - Next.js starter project focused on developer experience.
- GraphQL Starter - A boilerplate for TypeScript + Node Express + Apollo GraphQL APIs.
- Mocked Managed Federation - Apollo Server 3 - An example of how to mock a managed federation Supgraph using Apollo Server 3.x
- Mocked Managed Federation - Apollo Server 4 - An example of how to mock a managed federation Supgraph using Apollo Server 4.x
- Next.js Advanced Graphql Crud MongoDB Starter - Starter Generic CRUD with Advanced Apollo Graphql server with Next.js and Mongodb (TypeScript)

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

#### Ruby Examples

- graphql-ruby-demo - Use graphql-ruby to expose a Rails app.
- 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 - 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.

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

#### PHP Examples

- siler-graphgl - An example GraphQL server written with Siler.

### Python

- graphql-parser - GraphQL parser for Python.
- graphql-core - GraphQL implementation for Python based on GraphQL.js v16.3.0 reference implementation
- graphql-relay-py - A library to help construct a graphql-py server supporting react-relay.
- graphql-parser-python - A python wrapper around libgraphqlparser.
- graphene - A package for creating GraphQL schemas/types in a Pythonic easy way.
- graphene-gae - Adds GraphQL support to Google AppEngine (GAE).
- django-graphiql - Integrate GraphiQL easily into your Django project.
- flask-graphql - Adds GraphQL support to your Flask application.
- python-graphql-client - Simple GraphQL client for Python 2.7+
- python-graphjoiner - Create GraphQL APIs using joins, SQL or otherwise.
- graphene-django - A Django integration for Graphene.
- Flask-GraphQL-Auth - An authentication library for Flask inspired from flask-jwt-extended.
- tartiflette - GraphQL Implementation, SDL First, for python 3.6+ / asyncio.
- tartiflette-aiohttp - Wrapper of Tartiflette to expose GraphQL API over HTTP based on aiohttp / 3.6+ / asyncio, official tutorial available on tartiflette.io.
- Ariadne - library for implementing GraphQL servers using schema-first approach. Asynchronous query execution, batteries included for ASGI, WSGI and popular webframeworks, fully documented.
- django-graphql-auth - Django registration and authentication with GraphQL.
- strawberry - A new GraphQL library for Python.
- turms - A pythonic graphql codegenerator built around graphql-core and pydantic
- rath - An apollo like graphql client with async and sync interface
- sgqlc - Simple GraphQL Client makes working with GraphQL API responses easier in Python.

#### Python Examples

- swapi-graphene - A GraphQL schema and server using Graphene.
- Python Backend Tutorial - A tutorial on creating a GraphQL server with Strawberry and a client with Qlient.

### Java

- graphql-java - GraphQL Java implementation.
- DGS Framework - A GraphQL server framework for Spring Boot, developed by Netflix.
- 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 - 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 - Provides annotations-based syntax for schema definition with GraphQL Java.
- 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 - 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 - 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 - 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: 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 - 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 - GraphQL ISO Date is a set of RFC 3339 compliant date/time scalar types to be used with graphql-java.
- graphql-java-extended-scalars - Extended scalars for graphql-java.

#### Java Examples

- light-java-graphql examples - 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 - Samples for using the GraphQL Java Kickstart projects.
- 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.

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

#### 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.
- gql - Code first graphql (graphql-go/graphql) schema builder.
- 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.
- 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.
- vibeGraphql - vibeGraphQL is a minimalistic GraphQL library for Go that supports queries, mutations, and subscriptions with a clean and intuitive API. It was vibe coded using ChatGPT o3 model.
- 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.

#### Go Examples

- golang-relay-starter-kit - Barebones starting point for a Relay application with Golang GraphQL server.
- 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.

### 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

- sangria-akka-http-example - An example GraphQL server written with akka-http and sangria
- sangria-playground - An example of GraphQL server written with Play and sangria.

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

#### .NET Examples

- .NET backend tutorial - A tutorial creating a GraphQL server and client with .NET.

### Elixir

- absinthe-graphql - Fully Featured Elixir GraphQL Library.
- graphql-elixir - GraphQL Elixir. (No longer maintained)
- plug_graphql - Plug integration for GraphQL Elixir.
- graphql_relay - Relay helpers for GraphQL Elixir.
- graphql_parser - Elixir bindings for libgraphqlparser
- graphql - Elixir GraphQL parser.
- plot - GraphQL parser and resolver for Elixir.

#### Elixir Examples

- hello_graphql_phoenix - Examples of GraphQL Elixir Plug endpoints mounted in Phoenix

### Haskell

- graphql-haskell - GraphQL AST and parser for Haskell.
- morpheus-graphql - Haskell GraphQL Api, Client and Tools.

### 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

- graphql-lua - GraphQL for Lua.

### Elm

- elm-graphql - GraphQL for 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

- Clojure Game Geek - Example code for the Lacinia GraphQL framework tutorial.

### Swift

- GraphQL - The Swift implementation for GraphQL.

### OCaml

- ocaml-graphql-server - GraphQL servers in 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

- apollo-frontpage-android-app - 📄 Apollo “hello world” app, for Android.

### 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.
- GQLite iOS SDK - GQLite iOS SDK is a toolkit to work with GraphQL servers easily.

#### iOS Examples

- frontpage-ios-app - 📄 Apollo “hello world” app, for iOS.

### 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

- graphql-flutter - A GraphQL client for Flutter.
- Artemis - A GraphQL type and query generator for Dart/Flutter.

### 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.
- tailcall - A platform for building high-performance GraphQL backends.

#### Rust Examples

- Warp GraphQL Juniper
- Tailcall

### D (dlang)

- graphqld - GraphQL server library for D.

### 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

- graphql - GraphQL server library.
- graphql-crystal - library inspired by graphql-ruby & go-graphql & graphql-parser.
- crystal-gql - GraphQL client shard inspired by Apollo client.
- graphql.cr - GraphQL shard.

### Ballerina

- graphql - Ballerina standard library for GraphQL. This library provides a GraphQL client and server implementations including builtin support for GraphQL subscriptions.
- graphql CLI - A CLI tool to generate Ballerina code from GraphQL schema and GraphQL schema from Ballerina code. It also provides functionality to generate usage-specific GraphQL clients using GraphQL schemas and documents.

#### Ballerina Samples

- Ballerina GraphQL Examples
- Convert Weather REST API to GraphQL API

## 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.
- Brangr - A unique, user-friendly data browser/viewer for any GraphQL service, with attractive result layouts.
- Insomnia - A full-featured API client with first-party GraphQL query editor.
- Postman - An HTTP Client that supports editing GraphQL queries.
- Bruno - Fast, open source API client, which stores collections offline-only in a Git-friendly plain text markup language.
- Escape GraphMan - Generate a complete Postman collection from a GraphQL endpoint.
- 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.
- CraftQL - A CLI tool to visualize GraphQL schemas and to output a graph data structure as a graphviz .dot format.
- gqt - Build and execute GraphQL queries in the terminal.
- Hackolade - Visual GraphQL schema editor to generate Schema Definition Language files without any knowledge of the GraphQL syntax. Also visualize and document existing endpoints with introspection. Additional info and instructions here

### Tools - Testing

- Step CI - Open-Source API Testing and Monitoring with GraphQL support
- graphql-to-karate - Generate Karate API tests from your GraphQL schemas

### Tools - Security

- GraphCrawler - The all-in-one GraphQL Security toolkit - The all-in-one automated penetration tester toolkit for GraphQL, written in Python
- Escape - The GraphQL Security Scanner - One-click security scan of your GraphQL endpoints. Free, no login required.
- Escape Graphinder - GraphQL Subdomain Enumeration – Blazing fast GraphQL endpoints finder using subdomain enumeration, scripts analysis and bruteforce.
- StackHawk - GraphQL Vulnerability Scanner - StackHawk
- InQL Scanner - A Burp Extension for GraphQL Security Testing
- GraphQL Raider BurpSuite
- WAF for graphQL - Web Application Firewall for graphQL APIs
- GraphQL Intruder - Plugin based python script to perform GraphQL vulnerability assessment.
- GraphQL Cop - Security Audit Utility for GraphQL
- GraphQLer - Dependency-aware dynamic GraphQL testing tool

### Tools - Browser Extensions

- Apollo Client Developer Tools - GraphQL debugging tools for Apollo Client in the Chrome developer console
- GraphQL Network Inspector - A simple and clean chrome dev-tools extension for GraphQL network inspection.

### Tools - Prototyping

- GraphQL Faker - 🎲 Mock or extend your GraphQL API with faked data. No coding required.

### Tools - Docs

- graphdoc - Static page generator for documenting GraphQL Schema.
- gqldoc - The easiest way to make API documents for GraphQL.
- spectaql - Autogenerate static GraphQL API documentation.
- graphql-markdown - Flexible documentation for GraphQL powered with Docusaurus.

### 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.
- Typetta - Node.js ORM written in TypeScript for type lovers. Typetta is the perfect ORM for the GraphQL + NodeJS + Typescript stack.
- 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.
- amplication: Amplication is an open‑source low code development tool. It builds database applications with REST API and GraphQL for CRUD with relations, sorting, filtering, pagination.
- Blendbase: Single open-source GraphQL API to connect CRMs to your SaaS. Query any customer CRM system (Salesforce, Hubspot and more) with a single API query from your SaaS app.
- microfiber - Query and manipulate GraphQL introspection query results in useful ways.
- DronaHQ - Build internal tools, dashboards, admin panel on top of GraphQL data in minutes
- Dynaboard - Generate low-code web apps from any GraphQL API using AI.
- gqlhash - Lightning fast query hasher that ignores formatting diffs and comments and supports multiple hashing functions.

## Databases

- Cube - Headless BI for building data applications with SQL, REST, and GraphQL API. Connect any database or data warehouse and instantly get a GraphQL API with sub-second latency on top of it. - Source Code
- Dgraph - Scalable, distributed, low latency, high throughput Graph database with GraphQL as the query language
- EdgeDB - The next generation object-relational database with native GraphQL support.
- ArangoDB - Native multi-model database with GraphQL integration via the built-in Foxx Microservices Framework.
- Weaviate - Weaviate is a cloud-native, modular, real-time vector search engine with a GraphQL interface built to scale your machine learning models.

## 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.
- 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.
- Grafbase - Instant GraphQL APIs for any data source.

### CDN

- GraphCDN - GraphQL CDN for caching GraphQL APIs.

### CMS

- DatoCMS - CDN-based GraphQL based Headless Content Management System.
- Apito - A Cloud Based Headless CMS with CDN, Webhooks, Team Collaborations, Content Revision, Cloud Functions.
- Hygraph - Build Scalable Content Experiences.
- Cosmic - GraphQL-powered Headless CMS and API toolkit.
- Graphweaver - Turn multiple datasources into a single GraphQL API.

## Books

- The GraphQL Guide by John Resig and Loren Sands-Ramshaw
- Craft GraphQL APIs in Elixir with Absinthe by Bruce Williams and Ben Wilson
- The Road to GraphQL
- Practical GraphQL by Daniel Schmitz
- Production Ready GraphQL by Marc-André Giroux
- Full Stack GraphQL Applications by William Lyon

## Videos

- GraphQL: The Documentary
- Zero to GraphQL in 30 Minutes
- Data fetching for React applications at Facebook
- React Native & Relay: Bringing Modern Web Techniques to Mobile
- Exploring GraphQL
- Creating a GraphQL Server
- GraphQL at The Financial Times
- Relay: An Application Framework For React
- Building and Deploying Relay with Facebook
- Introduction to GraphQL
- Exploring GraphQL@Scale
- What’s Next for Phoenix by Chris McCord
- GraphQL with Nick Schrock
- Build a GraphQL server for Node.js using PostgreSQL/MySQL
- GraphQL server tutorial for Node.js with SQL, MongoDB and REST
- JavaScript Air Episode 023: Transitioning from REST to GraphQL
- GraphQL Future at react-europe 2016
- GraphQL at Facebook at react-europe 2016
- Building native mobile apps with GraphQL at react-europe 2016
- Build a GraphQL Server
- GraphQL Tutorial
- Five years of GraphQL
- GraphQL is for Everyone by Moon Highway

## Podcasts

- GraphQL.FM by Marc-Andre Giroux and Tony Ghita.

## 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.
- Yelp GraphQL Guidelines - This repo contains documentation and guidelines for a standardized and mostly reasonable approach to GraphQL (at Yelp).
- Principled GraphQL - Apollo’s 10 GraphQL Principles, broken out into three categories, in a format inspired by the Twelve Factor App.

## Blogs

- Official GraphQL blog
- Building Apollo
- The Guild blog
- Production Ready GraphQL blog

### Blogs - Security

- Escape - The GraphQL Security Blog - Learn about GraphQL security, performance, testing and building production-ready APIs with the latest tools and best practices of the GraphQL ecosystem.
- 9 GraphQL Security Best Practices
- Discovering GraphQL Endpoints and SQLi Vulnerabilities
- Securing GraphQL API
- Security Points to Consider Before Implementing GraphQL
- Authorization Patterns in GraphQL

## Posts

- GraphQL federation example with Apollo Federation and Apollo GraphOS
- GraphQL federation with Hasura GraphQL Engine and Cube
- Using DataLoader to batch GraphQL requests
- Introducing Relay and GraphQL
- GraphQL Introduction
- Unofficial Relay FAQ
- Your First GraphQL Server
- GraphQL Overview - Getting Started with GraphQL and Node.js
- 4 Reasons you should try out GraphQL
- Moving from REST to GraphQL
- Writing a Basic API with GraphQL
- Building a GraphQL Server with Node.js and SQL
- GraphQL at The Financial Times
- Implementing GraphQL RBAC Authorization: A Practical Guide
- From REST to GraphQL
- GraphQL: A data query language
- Subscriptions in GraphQL and Relay
- Relay 101: Building A Hacker News Client
- GraphQL Shorthand Notation Cheatsheet
- The GitHub GraphQL API
- Github GraphQL API React Example
- Testing a GraphQL Server using Jest
- How to implement viewerCanSee in GraphQL
- Preventing traversal attacks on your GraphQL API
- Mock your GraphQL server realistically with faker.js
- Create an infinite loading list with React and GraphQL
- REST vs GraphQL
- Authentication and Authorization for GraphQL APIs
- Build a GraphQL API with Siler on top of Swoole
- Fluent GraphQL clients: how to write queries like a boss
- Level up your serverless game with a GraphQL data-as-a-service layer
- A deep-dive into Relay, the friendly & opinionated GraphQL client
- make your graphql api easier to adopt through components
- Undocumented: keeping parts of your GraphQL schema hidden from introspection
- GraphQL Subscriptions with Apache Kafka in Ballerina
- How to Test your GraphQL Endpoints
- Why Automatic Persisted Queries Don’t Scale

## Tutorials

- 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.
- GraphQL Roadmap - Step by step guide to learn GraphQL.
- GraphQL Security Academy - a free and interactive platform to learn GraphQL security: how to find, exploit and fix GraphQL vulnerabilities.

## License

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

graphql.md Github