Switch branches/tags
Nothing to show
Clone or download
stubailo Merge pull request #360 from kasbah/patch-1
Add clients section with urql and graphql-request
Latest commit 56b8d4c Jul 6, 2018

README.md

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.

Community

GraphQL Meetups

Libraries

JavaScript Libraries

Clients
  • relay - Relay is a JavaScript framework for building data-driven React applications.
  • Apollo Client - A well-documented GraphQL client. Has React and Angular bindings.
  • FetchQL - GraphQL query client with Fetch
  • Lokka - Simple JavaScript client for GraphQL, which you can use anywhere.
  • react-reach - A library to communicate with Graphql through Redux
  • urql - A simpler caching GraphQL client for React
  • graphql-request - A minimal GraphQL client for Node and browsers
Miscellaneous
  • GraphQL.js - A reference implementation of GraphQL for JavaScript.
  • express-graphql - GraphQL Express Middleware.
  • koa-graphql - GraphQL Koa Middleware.
  • hapi-graphql - Create a GraphQL HTTP server with Hapi.
  • codemirror-graphql - GraphQL mode and helpers for CodeMirror.
  • graphql-schema - Create GraphQL schemas with a fluent/chainable interface.
  • graphql-sequelize - Sequelize helpers for GraphQL.
  • graphql-sequelize-crud - Automatically generate queries and mutations from Sequelize models.
  • graffiti - Node.js GraphQL ORM.
  • graffiti-mongoose - Mongoose (MongoDB) adapter for graffiti (Node.js GraphQL ORM).
  • babel-plugin-graphql - Babel plugin that compile GraphQL tagged template strings.
  • adrenaline - React bindings for Redux with Relay in mind.
  • graphql-bookshelf - Some help defining GraphQL schema around BookshelfJS models.
  • graphql-bookshelfjs - A simple bridge between your graphql queries and your bookshelf models, perform batched and optimised queries.
  • 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.
  • graysql-orm-loader - A GraysQL extension to load a GraphQL schema from an ORM.
  • 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-thinky - Build an optimized GraphQL schema from Thinky RethinkDB models.
  • 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.
  • Create-GraphQL - Command-line utility to build production-ready servers with GraphQL.
  • GraphQL-Pokémon - Get information of a Pokémon with GraphQL!
  • graphql-factory - Create GraphQL types from JSON definitions
  • ChromeiQL - Chrome extension to use GraphiQL anywhere
  • graphql-auto-mutation - Automatically generates functions for mutations specified in a GraphQL schema.
  • GraphiteJS - Full stack GraphQL framework.
  • loopback-graphql - GraphQL Server for Loopback.
  • parasprite - Describe your GraphQL schema using chainable interface.
  • GraphQL.js - JavaScript GraphQL Client for Browser and Node.js Usage
  • graphql-sync - Promise-free wrapper to GraphQL.js for synchronous environments
  • Spikenail - Node.js framework for building GraphQL API almost without coding.
  • graphql-weaver - A tool to combine, link and transform GraphQL schemas; combine multiple GraphQL servers into one API.
  • graphql-lodash - Data manipulation for GraphQL queries with lodash syntax.
  • apollo-angular - Angular integration for Apollo.
  • graphql-resolvers - Resolver composition library for GraphQL.
  • apollo-resolvers - Expressive and composable resolvers for Apollo Server and graphql-tools.
  • apollo-errors - Machine-readable custom errors for Apollo Server.
  • graphql-disable-introspection - Graphql Disable Introspection
  • mongo-graphql-starter - Flexible and robust Mongo based resolvers for Node.
  • altair-express-middleware - An express middleware for mounting an instance of Altair GraphQL client.
  • graphql-cost-analysis - A Graphql query cost analyzer.
  • gql - Graphql sevice which watches project files and provides validation, autocompletion, get defintion, etc. for GraphQL schema and queries. Works with Relay classic, Relay modern and Apollo, as well as embedded GraphQL queries within any other language such as JS, Golang, Ruby, Cucumber test files, etc.
  • gql-language-server - A language-server implementation on top of the gql library.
Relay Related
  • relay - Relay is a JavaScript framework for building data-driven React applications.
  • 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-plugin-react-relay - Babel Plugin for Relay with support for JSON & graphql-js schemas and URL endpoints.
  • 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.
  • Apollo Client - A simple alternative to Relay, comes with React and Angular bindings.
  • 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!
  • Relay Pokédex - Project using GraphQL Pokémon to show how powerful Relay is.
  • vue-relay - A framework for building GraphQL-driven Vue.js applications.

TypeScript Libraries

  • TypeGraphQL - Create GraphQL schema and resolvers with TypeScript, using classes and decorators!
  • Vesper - NodeJS framework that helps you to create scalable, maintainable, extensible, declarative and fast GraphQL-based server applications.
  • graphql-strong - Define your GraphQL schemas with confidence that your values are correct.
  • graphql-to-typescript - Compiles GraphQL files into an importable typescript module with type definitions
  • graphql-decorator - Helps to build GraphQL schema with TypeScript.
  • graphql-schema-decorator - This package makes possible the use of decorators to define a GraphQL schema.
  • graphql-typescript - Define and build GraphQL Schemas using typed classes
  • typegql - Create GraphQL schema with type-safe class decorators.

Ruby Libraries

  • graphql-ruby - Ruby implementation of Facebook's GraphQL.
  • graphql-parser - A small ruby gem wrapping the libgraphqlparser C library for parsing GraphQL.
  • graphql-client - A Ruby library for declaring, composing and executing GraphQL queries.
  • graphql-batch - A query batching executor for the graphql gem.
  • batch-loader – A powerful tool to avoid N+1 queries without extra dependencies or primitives.
  • graphql-guard - A simple field-level authorization for the graphql gem.

PHP Libraries

Python Libraries

Java Libraries

  • graphql-java - GraphQL Java implementation.
  • graphql-java-type-generator - Auto-generates types for use with GraphQL Java
  • schemagen-graphql - Schema generation and execution package that turns POJO's into a GraphQL Java queryable set of objects. Enables exposing any service as a GraphQL service using Annotations.
  • graphql-java-annotations - Provides annotations-based syntax for schema definition with GraphQL Java.
  • spring-graphql-common - Spring Framework GraphQL Library.
  • graphql-spring-boot - GraphQL and GraphiQL Spring Framework Boot Starters.
  • neo4j-graphql - GraphQL bindings for Neo4j, generates and runs Cypher.
  • 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
  • LiveGQL - GraphQL subscription client in Java.
  • rdbms-to-graphql - A Java CLI program that generates a GraphQL schema from a JDBC data source.
  • Rejoiner - Generates a GraphQL schema based on one or more gRPC microservices, or any other Protobuf source.
  • graphql-spqr - GraphQL SPQR aims to make it dead simple to add a GraphQL API to any Java project. It works by dynamically generating a GraphQL schema from Java code.

C/C++ Libraries

Go Libraries

  • graphql - An implementation of GraphQL for Go follows graphql-js
  • 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-go - GraphQL server with a focus on ease of use.
  • 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
  • dataloader - Implementation of Facebook's DataLoader in Golang

Scala Libraries

Perl Libraries

.NET Libraries

Erlang Libraries

  • graphql-erlang - Pure Erlang implementation with IDL and pattern-matching.

Elixir Libraries

Haskell Libraries

SQL Libraries

  • GraphpostgresQL - GraphQL for Postgres.
  • sql-to-graphql - Generate a GraphQL API based on your SQL database structure.
  • PostGraphile - A GraphQL API created by reflection over a PostgreSQL schema.
  • rdbms-to-graphql - A Java CLI program that generates a GraphQL schema from a JDBC data source.
  • 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.

Lua Libraries

Elm Libraries

Clojure Libraries

  • graphql-clj - A Clojure library designed to provide GraphQL implementation.
  • lacinia - GraphQL implementation in pure Clojure.
  • alumbra - Simple & Elegant GraphQL for Clojure!

ClojureScript Libraries

  • speako - A ClojureScript/NPM compiler for GraphQL Schema Language.
  • venia - A Clojure(Script) GraphQL query generation

Swift Libraries

  • GraphQL - Build GraphQL APIs with Swift.
  • Graphiti - Build Swiftier GraphQL APIs with Swift.
  • Gryphin - Type-safe GraphQL client for iOS and MacOS written in Swift.
  • Apollo-iOS - Strongly typed, code-generating, caching GraphQL client for Swift.
  • LiveGQL - GraphQL Subscription client in Swift.

OCaml Libraries

Rust Libraries

  • juniper - GraphQL server library for Rust.

R Libraries

  • graphql - Bindings to libgraphqlparser for R.
  • gqlr - GraphQL server package for R.
  • ghql - GraphQL client package for R.

Julia Libraries

Kotlin Libraries

  • ktq - Kotlin gradle plugin SDL type generator & runtime client

Unity Libraries

Crystal Libraries

Tools

  • graphiql - An in-browser IDE for exploring GraphQL.
  • GraphQL Playground - GraphQL IDE that supports multi-column schema docs, tabs, query history, configuration of HTTP headers and GraphQL Subscriptions.
  • GraphiQL.app - A light, Electron-based wrapper around GraphiQL.
  • GraphQLviz - GraphQLviz marries GraphQL (schemas) with Graphviz.
  • graphqlviz - GraphQL API visualizer in Node.js
  • Graphql for VSCode - VSCode extension for GraphQL schema authoring & consumption. Uses the language server protocol to provide first-class editing capabilities for graphql devs.
  • Relay Playground
  • 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 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
  • RAN Toolkit - Production-ready toolkit/boilerplate with support for GraphQL, SSR, Hot-reload, CSS-in-JS, caching, and more.

Databases

  • ArangoDB - Multi-model database that supports GraphQL schemas in JavaScript inside the database.
  • Dgraph - Scalable, distributed, low latency, high throughput Graph database with a GraphQL like language (called GraphQL+) as the query language. Dgrapqh can be queried with graphql by using dgraphql

Services

  • 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.
  • Hasura - Create tables and get a GraphQL backend in under 60s. Works on top of Postgres that you can directly access. No initial knowledge of graphql required.
  • Reindex - Instant GraphQL Backend for Your React Apps.
  • Scaphold - GraphQL as a service that includes API integrations such as Stripe and Mailgun.
  • Tipe - Next Generation API-first CMS with a GraphQL or REST API. Stop letting your CMS decide how you build your apps.
  • AWS AppSync - Serverless GraphQL

Examples

JavaScript Examples

TypeScript Examples

Ruby Examples

Go Examples

Scala Examples

Python Examples

Elixir Examples

PHP Examples

ReasonML Examples

Videos

Blogs

Posts

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
  • learning-graphql - An attempt to learn GraphQL.
  • Learn Relay - A comprehensive introduction to Relay
  • Learn Apollo - A hands-on tutorial for Apollo GraphQL Client

License

CC0

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