Courses & TutorialsProgramming

Awesome GraphQL – Massive Collection of Resources

Awesome list of GraphQL & Relay

Table of Contents

Specification

  • facebook/graphql – Working Draft of the Specification for GraphQL created by Facebook.

Foundation

Community

  • Slack – Share and help people on the chat. Get your invite here
  • Discord – Join #graphql on the ReactiFlux Discord server
  • Facebook – Group for discussions, articles and knowledge sharing
  • Twitter – Use the hashtag #graphql
  • StackOverflow – Questions and answers. Use the tag graphql
  • GraphQL APIs – A collective list of public GraphQL APIs
  • GraphQL World – The fastest growing community of GraphQL developers
  • /r/GraphQL – A Subreddit for interesting and informative GraphQL content and discussions.
  • GraphQL Jobs – A list of GraphQL-based jobs in startups all over the world.
  • Bookmarks.dev – Dev bookmarks. Use the tag graphql
  • GraphQL Weekly – A weekly newsletter highlighting resources and news from the GraphQL community

GraphQL Meetups

Libraries

JavaScript Libraries

Clients

  • relay – Relay is a JavaScript framework for building data-driven React applications.
  • Apollo Client – A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.
  • Apollo Elements – GraphQL web components that work in any frontend framework.
  • aws-amplify – A client library developed by Amazon for caching, analytics and more that includes a way to fetch GraphQL queries.
  • graphql-hooks – Minimal hooks-first GraphQL client with caching and server-side rendering support.
  • graphql-request – A minimal GraphQL client for Node and browsers.
  • FetchQL – A simple GraphQL query client using Fetch.
  • urql – A simple caching GraphQL client for React.
  • 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.
  • Lokka – Simple JavaScript client for GraphQL, which you can use anywhere.
  • react-reach – A library to communicate with Graphql through Redux.
  • Grafoo – A tiny yet fully fledged cache based GraphQL client
  • mst-gql – Bindings for mobx-state-tree and GraphQL
  • graphql-pino-middleware – GraphQL middleware to augment resolvers with pino logger
  • graphql-lightstep-middleware – GraphQL middleware to instrument resolvers with lightstep traces

HTTP Server Bindings

Database & ORM

  • graphql-bookshelf – Some help defining GraphQL schema around BookshelfJS models.
  • graphql-sequelize – Sequelize helpers for GraphQL.
  • graphql-thinky – Build an optimized GraphQL schema from Thinky RethinkDB models.
  • graphql-tools-sequelize – OO-style schema definition functions and schema resolver functions for GraphQL-Tools using Sequelize ORM
  • graysql-orm-loader – A GraysQL extension to load a GraphQL schema from an ORM.
  • fireQL – A GraphQL API for Firebase (Firestore database), auto-hosted on cloud functions.

Miscellaneous

  • GraphQL.js – A reference implementation of GraphQL for JavaScript.
  • graphql-yoga – Fully-featured GraphQL Server with focus on easy setup, performance and great developer experience.
  • codemirror-graphql – GraphQL mode and helpers for CodeMirror.
  • graphql-schema – Create GraphQL schemas with a fluent/chainable interface.
  • graphql-tools-types – Custom GraphQL types for use with GraphQL-Tools (Void, Int, Float, String, Date, UUID, JSON)
  • graphql-normalizr – Normalize GraphQL responses for persisting in the client cache/state
  • babel-plugin-graphql – Babel plugin that compile GraphQL tagged template strings.
  • adrenaline – React bindings for Redux with Relay in mind.
  • graph.ql – Faster and simpler technique for creating and querying GraphQL schemas.
  • Strapi – Open-source Node.js framework that supports “GraphQL” out of the box.
  • GraysQL – A GraphQL manager and loader.
  • Annotated GraphQL – Proof of Concept for annotations in GraphQL (i.e.: transform an existing REST api into a GraphQL endpoint).
  • graphql-tools – Tool library for building and maintaining GraphQL-JS servers.
  • graphql-anywhere – Run a GraphQL query anywhere, against any data, with no schema.
  • graphql-tag – A JavaScript template literal tag that parses GraphQL queries.
  • modelizr – A library for simplifying the process of writing GraphQL queries, mocking them and normalizing their responses.
  • vue-apollo – Vue integration for apollo.
  • graphql-pouch – A GraphQL-API runtime on top of PouchDB created by GraphQL shorthand notation as a self contained service with CouchDB synchronization.
  • gql-tools – Tool library with CLI for schema generation and manipulation.
  • graphql-iso-date – A GraphQL date scalar type to be used with GraphQL.js. This scalar represents a date in the ISO 8601 format YYYY-MM-DD.
  • graphql-compose – Tool which allows you to construct flexible graphql schema from different data sources via plugins.
  • node-graphjoiner – Create GraphQL APIs using joins, SQL or otherwise.
  • Join Monster – A GraphQL-to-SQL query execution layer for batch data fetching.
  • graphql-factory – Create GraphQL types from JSON definitions
  • type-o-rama – JS type systems interportability.
  • GraphiteJS – Framework NodeJS for GraphQl.
  • GraphQL Joker – The ultimate GraphQL scaffolding tool.
  • reactive-graphql – Implementation of GraphQL based on RxJS and that supports live queries.
  • Preact-urql – Preact integration for urql.
  • graphql-let – A webpack loader to import type-protected codegen results directly from GraphQL documents
  • graphql-ably-pubsub – Ably PubSub implementation for GraphQL to publish mutation updates and subscribe to the result through a subscription query.

Relay Related

  • graphql-relay-js – A library to help construct a graphql-js server supporting react-relay.
  • sequelize-relay – Serverside library that connects sequelize and graphql-relay-js together.
  • babel-relay-plugin – Babel Relay Plugin for transpiling GraphQL queries for use with Relay.
  • react-router-relay – Relay integration for React Router.
  • relay-local-schema – Use Relay without a GraphQL server.
  • relay-sink – Use Relay to fetch and store data outside of a React component.
  • recompose-relay – Recompose helpers for Relay.
  • Graylay – A GraysQL extension to create a Relay compatible Schema.
  • react-relay-network-layer – A network layer for Relay with query batching and middleware support (urlThunk, retryThunk, auth, defer and other).
  • relay-subscriptions – Subscription support for Relay.
  • Portfolio Relay Example – An example website that fetches data from various apis and uses Relay and GraphQL to feed the data to React components!

TypeScript Libraries

  • GraphQL Nexus – Declarative, code-first and strongly typed GraphQL schema construction for TypeScript & JavaScript.

Ruby Libraries

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

PHP Libraries

  • graphql-php – A PHP port of GraphQL reference implementation.
  • Railt – High quality and loosely coupled framework for developing GraphQL applications using all the modern qualities of the language.
  • digiaonline – Yet another PHP port of GraphQL reference implementation.
  • GraphQL (abandoned) – Well documented PHP implementation with no dependencies.
  • 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.
  • laravel-graphql (abandoned) – Facebook GraphQL for Laravel 5.
  • laravel-graphql-relay – A Laravel library to help construct a server supporting react-relay.
  • graphql-mapper (abandoned) – This library allows to build a GraphQL schema based on your model.
  • graphql-bundle – GraphQL Bundle for Symfony 2.
  • overblog/graphql-bundle – This bundle provides tools to build a complete GraphQL server in your Symfony App. Supports react-relay.
  • GraphQL Symfony Bundle – GraphQL Bundle for the Symfony 3 (supports 2.6+).
  • graphql-wp – WordPress plugin that exposes a GraphQL endpoint.
  • eZ Platform GraphQL Bundle – GraphQL Bundle for the eZ Platform Symfony CMS.
  • GraphQL Middleware – GraphQL Psr7 Middleware
  • Zend Expressive GraphiQL Extension – GraphiQL extension for zend expressive
  • 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.
  • GraPHPinator – Easy-to-use GraphQL server implementation for modern PHP.

Python Libraries

  • graphql-parser – GraphQL parser for Python.
  • graphql-core – GraphQL implementation for Python based on GraphQL.js v0.6.0 reference implementation
  • graphql-core-next – Latest GraphQL implementation based on GraphQL.js v14.5.6 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.
  • pnp-graphql – A Django integration for GraphQL with Graphene. It’s fully plug and play type. No extra code needed to expose basic api with filtering, pagination and mutations.
  • django-graphql-auth – Django registration and authentication with GraphQL.

Java Libraries

  • graphql-java – GraphQL Java implementation.
  • 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. 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.

Kotlin Libraries

C/C++ Libraries

  • libgraphqlparser – A GraphQL query parser in C++ with C and C++ APIs.
  • cppgraphqlgen – C++ GraphQL schema service generator.
  • CaffQL – Generates C++ client types and request/response serialization from a GraphQL introspection query.

Go Libraries

  • 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.
  • machinebox/graphql – Simple low-level GraphQL client for Go
  • graphql-relay-go – A Go/Golang library to help construct a server supporting react-relay.
  • graphql – GraphQL parser and server for Go.
  • c-graphqlparser – Go-gettable version of the libgraphqlparser C library for parsing GraphQL.
  • tallstreet-graphql – GraphQL parser and server for Go that leverages libgraphqlparser
  • go-graphql – A powerful GraphQL server implementation for Golang
  • Super Graph: Fetch data without code! Super Graph gives you a high performance GraphQL API without you having to write any code. GraphQL is automagically compiled into an efficient SQL query. Use it either as a library or a standalone service.

Scala Libraries

  • sangria – Scala GraphQL server implementation.
  • sangria-relay – Sangria Relay Support.
  • graphql-scala – An attempt to get GraphQL going with Scala.
  • caliban – Caliban is a purely functional library for creating GraphQL backends in Scala.

.NET Libraries

Elixir Libraries

Haskell Libraries

SQL Libraries

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

Elm Libraries

Clojure Libraries

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

Swift Libraries

  • GraphQL – The Swift implementation for GraphQL.

OCaml Libraries

Android Libraries

  • apollo-android – 📟 A strongly-typed, caching GraphQL client for Android, written in Java

iOS Libraries

  • apollo-ios – 📱 A strongly-typed, caching GraphQL client for iOS, written in Swift
  • ApolloDeveloperKit – Apollo Client Devtools bridge for [Apollo iOS].

ClojureScript Libraries

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

ReasonML Libraries

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

  • Angel GraphQL – GraphQL server implementation with bindings
    for the Angel framework.
  • graphql-flutter – A GraphQL client for Flutter.
  • Artemis – A GraphQL type and query generator for Dart/Flutter.

Rust Libraries

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

D (dlang) Libraries

  • graphqld – GraphQL server library for D.

Julia Libraries

  • Diana.jl – A Julia GraphQL client/server implementation.

Crystal Libraries

Tools

  • graphiql – An in-browser IDE for exploring GraphQL.
  • GraphiQL.app – A light, Electron-based wrapper around GraphiQL.
  • GraphQLviz – GraphQLviz marries GraphQL (schemas) with Graphviz.
  • graphqlviz – GraphQL API visualizer in Node.js
  • GraphQL AST Explorer – Explore the AST of a GraphQL document interactively
  • GraphQLHub – Query public API’s schemas (e.g. Reddit, Twitter, Github, etc) using GraphiQL
  • js-graphql-intellij-plugin – GraphQL language support for IntelliJ IDEA and WebStorm, including Relay.QL tagged templates in JavaScript and TypeScript.
  • gdom – DOM Traversing and Scraping using GraphQL.
  • Annotated GraphQL Server – Server for annotated GraphQL showing how to transform a REST api into a GraphQL endpoint with annotations.
  • Model Visualizer – A small webapp that generates an ERD-like visualization of a GraphQL endpoint from an introspection query.
  • GraphQL Network – A chrome dev-tools extension for debugging GraphQL network requests.
  • eslint-plugin-graphql – An ESLint plugin that checks your GraphQL strings against a schema.
  • AST Explorer – Select “GraphQL” at the top, explore the GraphQL AST and highlight different parts by clicking in the query.
  • vim-graphql – A Vim plugin that provides GraphQL file detection and syntax highlighting.
  • GraphQL CMS – Use your existing GraphQL schema to generate simple for use, fully functional CMS in a couple steps.
  • graphdoc – Static page generator for documenting GraphQL Schema.
  • graphql-autocomplete – Autocomplete and lint from a GraphQL endpoint in Atom.
  • GraphQL Code Generator – GraphQL code generator based on schema and documents.
  • GraphQL IDE – An extensive IDE for exploring GraphQL API’s.
  • Swagger to GraphQL – GraphQL types builder based on REST API described in Swagger. Allows to migrate to GraphQL from REST for 5 minutes
  • GraphQL Voyager – Represent any GraphQL API as an interactive graph.
  • GraphQL Docs – Instantly create beautiful GraphQL API docs hosted online.
  • GraphQL Faker – 🎲 Mock or extend your GraphQL API with faked data. No coding required.
  • 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.
  • Altair GraphQL Client – A beautiful feature-rich GraphQL Client for all platforms.
  • Apollo Storybook Decorator – Wrap your React Storybook stories with Apollo Client, provide mocks for isolated UI testing with GraphQL
  • GraphQL Metrics – instrument GraphQL resolvers, logging response times and statuses (if there was an error or not) to the console as well as to InfluxDB.
  • GraphQL Rover – GraphQL schema interactive navigation, rearrange nodes, search and explore types and fields.
  • json-graphql-server – Get a full fake GraphQL API with zero coding in less than 30 seconds, based on a JSON data file.
  • Insomnia – An full-featured API client with first-party GraphQL query editor
  • 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).
  • RAN Toolkit – Production-ready toolkit/boilerplate with support for GraphQL, SSR, Hot-reload, CSS-in-JS, caching, and more.
  • Apollo GraphQL VSCode Extension – Rich editor support for GraphQL client and server development that seamlessly integrates with the Apollo platform
  • GRAPHQL DESIGNER – A developer’s web-app tool to rapidly prototype a full stack CRUD implementation of GraphQL with React.
  • GraphQL Inspector – Tooling for GraphQL. Compare schemas, validate documents, find breaking changes, find similar types, schema coverage.
  • graphql-typed-client – A tool that generates a strongly typed client library for any GraphQL endpoint. The client allows writing GraphQL queries as plain JS objects (with type safety and awesome code completion experience)
  • OpenAPI-to-GraphQL – Take any OpenAPI Specification (OAS) or swagger and create a GraphQL interface – Two minute video and resources here
  • SwitchQL – Automated transcription of database schemas into GraphQL schemas, resolvers, queries, and mutations
  • VulcanJS – The full-stack React+GraphQL framework
  • Apollo Client Developer Tools – GraphQL debugging tools for Apollo Client in the Chrome developer console
  • GraphQL Birdseye – View any GraphQL schema as a dynamic and interactive graph.

Tools – Security

Databases

  • 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.
  • FaunaDB – Relational NoSQL database with GraphQL schema import. Supports joins, indexes, and multi-region ACID transactions with serverless pay-per-use pricing.
  • 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
  • DatoCMS – CDN-based GraphQL based Headless Content Management System.
  • FastQL – CDN specifically for GraphQL applications
  • GraphCMS – GraphQL based Headless Content Management System.
  • Graphcool – Your own GraphQL backend in under 5 minutes. Works with every GraphQL client such as Relay and Apollo.
  • 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.

Examples

JavaScript Examples

TypeScript Examples

Ruby Examples

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.

Scala Examples

Python Examples

Elixir Examples

Java Examples

Android Examples

iOS Examples

Clojure Examples

PHP Examples

Books

Videos

Blogs

Blogs – Security

Posts

Workshoppers

  • GraphQL of Thrones – Total beginner tutorial focused on just GraphQL without all the tooling. Alternates between LEARN and PLAY modes roleplaying as Game of Thrones characters.
  • How to GraphQL – Fullstack Tutorial Website with Tracks for all Major Frameworks & Languages including React, Apollo, Relay, JavaScript, Ruby, Java, Elixir and many more
  • learning-graphql – An attempt to learn GraphQL.
  • Let’s Learn GraphQL – Lessons/walkthrough of GraphQL concepts.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button