awesome-graphql Awesome

Awesome list of GraphQL & Relay

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

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

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.
  • GRelDAL - A simple micro-framework for bidirectional mapping between relational datastores and GraphQL APIs.

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.

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

Python Libraries

Java 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

Scala Libraries

.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

Julia Libraries

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

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 Launchpad - Like JSFiddle for GraphQL server code, write and deploy a GraphQL API directly from your browser.
  • 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

Databases

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.

Examples

JavaScript Examples

TypeScript Examples

Ruby Examples

Go Examples

Scala Examples

Python Examples

Elixir Examples

Java Examples

Android Examples

iOS Examples

Clojure Examples

PHP Examples

Books

Videos

Blogs

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.

License

CC0

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