Top Related Projects
GraphQL is a query language and execution engine tied to any backend service.
:rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
GraphQL Java implementation
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
The Fullstack Tutorial for GraphQL
Quick Overview
Awesome-GraphQL is a curated list of GraphQL resources, tools, and learning materials. It serves as a comprehensive collection of GraphQL-related content, including libraries, IDEs, services, and tutorials, aimed at helping developers explore and utilize GraphQL technology effectively.
Pros
- Extensive collection of GraphQL resources in one place
- Regularly updated with new content and tools
- Well-organized into categories for easy navigation
- Community-driven, allowing for contributions from GraphQL enthusiasts
Cons
- May be overwhelming for beginners due to the large amount of information
- Some listed resources might become outdated over time
- Lacks detailed explanations or comparisons of listed items
- Primarily focuses on quantity of resources rather than quality assessment
Note: As this is not a code library but a curated list of resources, the code examples and getting started instructions sections are not applicable.
Competitor Comparisons
GraphQL is a query language and execution engine tied to any backend service.
Pros of graphql-spec
- Official specification document for GraphQL
- Provides detailed technical information about GraphQL implementation
- Serves as the authoritative reference for GraphQL language and execution
Cons of graphql-spec
- Focused solely on the specification, lacking practical resources and tools
- May be too technical for beginners or those seeking quick implementation guides
- Limited community-contributed content compared to awesome-graphql
Code Comparison
graphql-spec (Schema Definition Language example):
type Query {
hero(episode: Episode): Character
droid(id: ID!): Droid
}
enum Episode {
NEWHOPE
EMPIRE
JEDI
}
awesome-graphql (JavaScript client example):
const client = new ApolloClient({
uri: 'https://api.example.com/graphql'
});
client.query({
query: gql`
query GetUser {
user(id: "1") {
name
email
}
}
`
})
Summary
graphql-spec is the official specification for GraphQL, providing in-depth technical details and serving as the authoritative reference. It's ideal for those seeking precise implementation guidelines but may be overwhelming for beginners. awesome-graphql, on the other hand, offers a curated list of GraphQL resources, tools, and examples, making it more accessible for developers looking for practical implementation guidance and community-contributed content.
:rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.
Pros of Apollo Client
- Provides a complete state management solution for GraphQL applications
- Offers advanced features like caching, optimistic UI, and error handling
- Actively maintained with regular updates and extensive documentation
Cons of Apollo Client
- Steeper learning curve for beginners compared to a curated list
- Focused solely on client-side implementation, lacking server-side resources
- May be overkill for simple GraphQL projects or those not using React
Code Comparison
Apollo Client:
import { ApolloClient, InMemoryCache } from '@apollo/client';
const client = new ApolloClient({
uri: 'https://api.example.com/graphql',
cache: new InMemoryCache()
});
Awesome GraphQL (example from a linked resource):
const query = `
query {
user(id: 1) {
name
email
}
}
`;
fetch('/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query })
}).then(res => res.json())
.then(data => console.log(data));
Summary
Apollo Client is a comprehensive GraphQL client library, while Awesome GraphQL is a curated list of GraphQL resources. Apollo Client offers a robust solution for complex applications but may be overwhelming for simpler projects. Awesome GraphQL provides a broader overview of the GraphQL ecosystem, including various tools and libraries, making it an excellent starting point for exploration and learning.
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
Pros of GraphQL Engine
- Provides a complete GraphQL server and database solution
- Offers real-time subscriptions and automatic CRUD API generation
- Includes built-in authorization and authentication features
Cons of GraphQL Engine
- More complex setup and configuration compared to a curated list
- Requires specific database support (PostgreSQL)
- May have a steeper learning curve for beginners
Code Comparison
GraphQL Engine (Hasura configuration):
version: '3.6'
services:
graphql-engine:
image: hasura/graphql-engine:v2.x.x
ports:
- "8080:8080"
environment:
HASURA_GRAPHQL_DATABASE_URL: postgres://username:password@hostname:port/dbname
Awesome GraphQL (Example usage):
import { graphql, buildSchema } from 'graphql';
const schema = buildSchema(`
type Query {
hello: String
}
`);
const root = { hello: () => 'Hello world!' };
graphql(schema, '{ hello }', root).then((response) => {
console.log(response);
});
While GraphQL Engine provides a full-featured GraphQL server with database integration, Awesome GraphQL is a curated list of GraphQL resources, tools, and libraries. GraphQL Engine offers a more comprehensive solution but requires specific infrastructure, whereas Awesome GraphQL serves as a valuable reference for developers looking to explore various GraphQL-related projects and implementations.
GraphQL Java implementation
Pros of graphql-java
- Comprehensive Java implementation of GraphQL
- Actively maintained with regular updates
- Extensive documentation and examples for Java developers
Cons of graphql-java
- Limited to Java ecosystem
- Steeper learning curve for those new to GraphQL
- Requires more setup compared to language-agnostic resources
Code Comparison
graphql-java:
GraphQLSchema schema = GraphQLSchema.newSchema()
.query(queryType)
.build();
GraphQL graphQL = GraphQL.newGraphQL(schema)
.build();
awesome-graphql: Not applicable as it's a curated list of resources, not a code implementation.
Summary
graphql-java is a robust Java implementation of GraphQL, offering a complete solution for Java developers. It provides extensive documentation and regular updates, making it ideal for Java-based projects. However, it's limited to the Java ecosystem and may have a steeper learning curve.
awesome-graphql, on the other hand, is a curated list of GraphQL resources covering various languages and tools. It offers a broader perspective and is more accessible to developers across different ecosystems. However, it doesn't provide a direct implementation like graphql-java does.
Choose graphql-java for Java-specific GraphQL projects, and awesome-graphql for exploring diverse GraphQL resources and implementations across multiple languages and platforms.
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
Pros of Prisma
- Provides a complete ORM solution with database migrations and type-safe queries
- Offers auto-generated and customizable database client for multiple programming languages
- Supports multiple databases (PostgreSQL, MySQL, SQLite, MongoDB) out of the box
Cons of Prisma
- Focused solely on database operations, not a comprehensive GraphQL toolkit
- Steeper learning curve for developers new to ORM concepts
- May introduce additional complexity for simple projects
Code Comparison
Prisma schema definition:
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
GraphQL schema (from awesome-graphql examples):
type User {
id: ID!
email: String!
name: String
posts: [Post!]!
}
Summary
Prisma is a powerful ORM and database toolkit, while awesome-graphql is a curated list of GraphQL resources. Prisma excels in database operations and type-safety, but has a narrower focus compared to the broad range of tools and libraries covered in awesome-graphql. The choice between them depends on whether you need a specific database solution (Prisma) or a comprehensive collection of GraphQL resources (awesome-graphql).
The Fullstack Tutorial for GraphQL
Pros of howtographql
- Comprehensive, structured learning path for GraphQL beginners
- Interactive tutorials with hands-on coding exercises
- Covers multiple programming languages and frameworks
Cons of howtographql
- Less extensive collection of resources compared to awesome-graphql
- Focused primarily on beginners, may lack advanced topics
- Limited community contributions and updates
Code Comparison
howtographql:
type Query {
allPersons(last: Int): [Person!]!
}
type Mutation {
createPerson(name: String!, age: Int!): Person!
}
awesome-graphql:
type Query {
user(id: ID!): User
}
type User {
id: ID!
name: String
posts: [Post]
}
howtographql provides a more beginner-friendly, step-by-step approach to learning GraphQL, while awesome-graphql offers a comprehensive collection of resources, tools, and libraries for GraphQL developers at various skill levels. howtographql is ideal for those new to GraphQL, whereas awesome-graphql serves as an extensive reference for both beginners and experienced developers seeking specific tools or information.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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
- Tools
- Databases
- Services
- Books
- Videos
- Podcasts
- Style Guides
- Blogs
- 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
orTypeScript
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.
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.
- 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.
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.
- 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.
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
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
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.
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
- Tinfoil Security - GraphQL Security Scanner - Tinfoil Security
- 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.
- GraphQL Designer - A developer's web-app tool to rapidly prototype a full stack CRUD implementation of GraphQL with React.
Tools - Docs
- graphdoc - Static page generator for documenting GraphQL Schema.
- gqldoc - The easiest way to make API documents for GraphQL.
- 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.
- ILLA Cloud â Open-source low-code tool building platform provides an easy way to integrate with GraphQL with minimal configurations
- 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.
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.
- 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
- FakeQL - GraphQL API mocking as a service ... because GraphQL API mocking should be easy!
- Moesif API Analytics - A GraphQL analaytics and monitoring service to find functional and performance issues.
- Booster framework - An open-source framework that makes you completely forget about infrastructure and allows you to focus exclusively on your business logic. It autogenerates a GraphQL API for your models, supporting mutations, queries, and subscriptions.
- Hypi - Low-code, scalable, serverless backend as a service. Your GraphQL & REST over GraphQL backend in minutes.
- Nhost - Open source Firebase alternative with GraphQL
- Saleor - GraphQL-first headless e-commerce platform.
- Stargate - Open source data gateway currently supporting Apache Cassandra® and DataStax Enterprise.
- 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
- Learning GraphQL and Relay by Samer Buna
- 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
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
- GraphQL for Pentesters - Introduction to Basic Concepts, Security Considerations & Reconnaissance, Vulnerabilities and Attacks, Offensive Tools.
- 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
- 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.
Top Related Projects
GraphQL is a query language and execution engine tied to any backend service.
:rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
GraphQL Java implementation
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
The Fullstack Tutorial for GraphQL
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot