Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. graphql

graphql

BSD-2-ClauseGov1.10.2

A GraphQL server implementation for Go with a minimal API and full spec support.

GitHubGitHub
4.8k stars496 forks0 contributors

What is graphql?

graphql-go is a GraphQL server library for Go that provides full support for the GraphQL specification with an idiomatic and easy-to-use API. It focuses on production readiness while maintaining a minimal and developer-friendly design, offering features like parallel execution, panic handling, and schema type-checking.

Target Audience

Go developers building production GraphQL servers who value idiomatic Go patterns, performance, and comprehensive spec compliance.

Value Proposition

Developers choose graphql-go for its clean, minimal API that integrates seamlessly with Go's context and standard libraries, its production-oriented features like built-in observability and parallel execution, and its compile-time safety through schema type-checking.

Overview

GraphQL server with a focus on ease of use

Use Cases

Best For

  • Building production GraphQL servers in Go that require full spec compliance and high performance.
  • Implementing GraphQL subscriptions in Go with WebSocket transport support.
  • Integrating OpenTelemetry or OpenTracing for observability in GraphQL APIs.
  • Avoiding N+1 query problems through field selection inspection and data prefetching.
  • Creating GraphQL schemas with separate resolvers for queries, mutations, and subscriptions to prevent name collisions.
  • Handling custom errors with extensions for detailed error reporting in GraphQL responses.

Not Ideal For

  • Teams wanting automatic GraphQL schema generation from Go structs or databases without manual resolver wiring.
  • Projects requiring a built-in GraphQL playground or admin UI out of the box for development and testing.
  • Applications needing advanced real-time features beyond basic subscriptions, as it only provides a sample WebSocket transport.

Pros & Cons

Pros

Idiomatic Go Integration

Seamlessly uses Go's context and structs for resolvers, making it familiar to Go developers, as shown in the resolver examples using context.Context and exported methods.

Production-Ready Features

Includes built-in panic handling, parallel execution, and observability support for OpenTelemetry/OpenTracing, ensuring stability and performance in production environments.

Compile-Time Safety

Schema type-checking ensures resolvers match the GraphQL schema at compile time, reducing runtime errors and enhancing reliability, as mentioned in the features.

Performance Optimizations

Parallel resolver execution and field selection inspection help avoid N+1 query problems, with configurable options like MaxParallelism for fine-tuning.

Cons

Evolving Internal APIs

The README states that internal APIs are subject to change, which could lead to breaking updates and require extra maintenance in future versions.

Basic Subscription Support

Subscriptions are supported but only with a sample WebSocket transport, lacking robust out-of-the-box solutions for production-grade real-time applications.

Manual Resolver Wiring

Resolvers must be manually matched to schema fields using Go structs and methods, without automatic code generation tools, increasing initial setup effort.

Frequently Asked Questions

Quick Stats

Stars4,760
Forks496
Contributors0
Open Issues8
Last commit4 days ago
CreatedSince 2016

Tags

#api#graphql#parallel-execution#type-checking#golang#open-telemetry#go#graphql-server#subscriptions

Built With

G
Go

Included in

Go169.1k
Auto-fetched 6 hours ago

Related Projects

gqlgengqlgen

go generate based graphql server library

Stars10,758
Forks1,254
Last commit23 hours ago
graphqlgraphql

An implementation of GraphQL for Go / Golang

Stars10,144
Forks845
Last commit2 months ago
daseldasel

Unified querying, transformation, and modification of JSON, TOML, YAML, XML, INI, HCL, KDL and CSV.

Stars8,029
Forks174
Last commit22 days ago
gojsonqgojsonq

A simple Go package for querying over JSON, YAML, XML, and CSV data.

Stars2,222
Forks144
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub