For a library for building GraphQL in Go, the first results are 99designs/gqlgen (This library is a comprehensive, schema-first GraphQL server framework for Go that uses code generation to ensure type safety and high performance, directly addressing all the core requirements for building robust GraphQL APIs), graphql-go/graphql (This library provides a comprehensive, reflection-based implementation for building GraphQL servers in Go, offering the core execution and schema-definition capabilities required for the category) and neelance/graphql-go (This library provides the core infrastructure for building GraphQL servers in Go, including resolver support, query execution, and performance-focused features like concurrency limits and subscription handling). graph-gophers/graphql-go and apollographql/graphql-tools round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “best go graphql libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
gqlgen is a schema-first Go library designed to build type-safe GraphQL servers. It functions as a code generation engine that transforms declarative GraphQL schema definitions into strongly-typed Go source code, ensuring strict alignment between the API contract and the underlying implementation. The framework distinguishes itself through its deep integration with the Go type system and its highly extensible build pipeline. By using schema-first development, it automates the creation of server boilerplate and resolver stubs, allowing developers to map schema fields directly to Go structs and
This library is a comprehensive, schema-first GraphQL server framework for Go that uses code generation to ensure type safety and high performance, directly addressing all the core requirements for building robust GraphQL APIs.
This project is a GraphQL implementation for Go, providing a complete suite for building GraphQL servers. It includes a schema engine for defining types, a query parser to convert strings into abstract syntax trees, and an execution engine that resolves fields against a defined schema to return structured data. The library distinguishes itself through reflection-based type mapping, allowing object definitions and arguments to be derived directly from native Go structs. It also supports the execution of real-time data streaming via GraphQL subscriptions and provides an extensible execution pip
This library provides a comprehensive, reflection-based implementation for building GraphQL servers in Go, offering the core execution and schema-definition capabilities required for the category.
graphql-go is a server library for implementing GraphQL servers in Go. It provides the core infrastructure for schema parsing, resolver mapping, and query execution. The library includes a subscription engine that enables real-time data streaming to clients using WebSocket transport. It also features an execution tracer for monitoring and profiling query performance through telemetry tools. The system manages resource consumption and stability through a query optimizer that enforces depth restrictions and controls resolver concurrency. It supports data fetching optimization via field-level p
This library provides the core infrastructure for building GraphQL servers in Go, including resolver support, query execution, and performance-focused features like concurrency limits and subscription handling.
graphql-go is a schema-first GraphQL library and server implementation for Go. It provides a query execution engine and schema parser that converts schema definition strings into executable structures and validates resolver signatures. The library also includes a streaming implementation for real-time GraphQL subscriptions using channels within resolvers. The project distinguishes itself through parallel resolver execution to reduce request latency and the use of buffer-pool memory management to lower garbage collection overhead. It enables the creation of cloneable schema instances from a sh
This library provides a schema-first approach to building GraphQL servers in Go with a focus on high-performance execution through concurrent resolvers and efficient memory management.
graphql-tools is a toolkit for constructing, modifying, and combining GraphQL schemas. It provides a suite of utilities for parsing Schema Definition Language, managing resolver bindings, and assembling executable schemas. The project enables the composition of unified GraphQL gateways by merging multiple independent subschemas through schema stitching. This includes capabilities for entity type merging, type extension, and field resolution delegation to route requests across different services. The toolkit also includes a mocking engine that generates simulated GraphQL schemas and data. Thi
This is a TypeScript-based toolkit for schema manipulation and composition rather than a Go-native library for implementing GraphQL servers or clients.
graphql-tools is a GraphQL schema orchestration library and toolkit designed for building, merging, and extending schemas. It provides an SDL-first schema generator that transforms Schema Definition Language strings and resolver maps into executable schema instances. The project features a dedicated schema stitching tool for combining multiple independent GraphQL schemas into a single unified API gateway. It also includes a GraphQL mocking engine that simulates backends by generating synthetic data based on schema definitions. The toolkit covers a broad range of composition capabilities, inc
This is a JavaScript/TypeScript toolkit for schema orchestration and stitching, which does not provide the Go-based implementation or performance characteristics required for a Go GraphQL server.
Templ is a type-safe HTML templating engine and UI framework for Go. It provides a system for building reusable HTML components that compile into Go code for server-side rendering, ensuring type safety and compile-time validation of data and logic. The project features a dedicated language server that provides autocomplete and syntax validation for template files within supported code editors. It employs compile-time code generation to transform a custom template language into Go source code, enabling the creation of modular HTML fragments and logic blocks. The framework includes automated s
This is a type-safe HTML templating engine for server-side rendering, which is a different category than a GraphQL server or client library.
dbtpl is a database model generator and schema introspector that produces type-safe source code and data models from SQL database schemas. It functions as a command line tool that maps SQL types to Go structs and execution functions, while providing a template-based system for creating custom source code and schema definitions. The tool supports multiple database engines, including PostgreSQL, MySQL, SQLite, Oracle, and SQL Server. It distinguishes itself by allowing users to define custom output formats through text templates and the ability to generate compatible model definitions for the D
This tool is a database schema-to-Go code generator rather than a GraphQL server or client framework, making it a utility for data access layers rather than a GraphQL implementation.
This project is a Protocol Buffers Go compiler and code generation framework that translates schema definitions into optimized Go structures and reflection-free serialization methods. It includes a gRPC service generator for producing client and server communication code and a serialization performance toolkit for generating automated benchmarks and test suites. The framework features a plugin-based system for transforming data definitions into source code with custom field mapping and struct tag injection. It allows for custom type mapping and struct type overriding to link data fields to sp
This is a Protocol Buffers and gRPC code generation framework for binary serialization, which is a different technology stack than the GraphQL query language and schema execution requested.
This project is a request router and web framework for the Go programming language. It provides a toolkit for matching incoming HTTP network requests to specific handler functions by evaluating criteria such as URL paths, request methods, headers, and hostnames. The framework distinguishes itself through its flexible matching capabilities, which include support for regular expressions and dynamic variable extraction from URL segments. It allows developers to organize routes into logical hierarchies, share common path prefixes, and maintain a central registry of named routes to facilitate prog
This is a general-purpose HTTP router and web framework for Go, which lacks the specific GraphQL schema handling, query parsing, and execution engine required to be a GraphQL library.
Echo is a high-performance, lightweight web framework for Go designed for building scalable RESTful APIs and web services. It provides a centralized environment for mapping network requests to handler functions, utilizing a fast radix-tree routing engine to ensure efficient request dispatching. The framework is built around a modular, middleware-centric pipeline that allows developers to execute reusable logic for cross-cutting concerns like authentication, logging, and security across the entire application. What distinguishes Echo is its focus on developer productivity through structured da
Echo is a general-purpose web framework for building RESTful APIs, but it lacks the specific GraphQL schema-first development and query execution capabilities required for a GraphQL server.
Altair is a graphical GraphQL API client, integrated development environment, and schema explorer. It functions as a debugging tool and collaboration platform for executing queries, mutations, and subscriptions against GraphQL servers. The project distinguishes itself by offering cloud-synced workspaces for organizing and sharing query collections among teams. It provides a flexible extensibility framework that allows the installation and execution of third-party plugins within isolated sandboxes. The platform covers a broad range of capabilities, including AI-assisted query writing, visual
This is a graphical IDE and debugging client for interacting with GraphQL APIs, rather than a library or framework for building GraphQL servers in Go.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| 99designs/gqlgen | 10.7K | Go | MIT | |
| graphql-go/graphql | 10.2K | Go | MIT | |
| neelance/graphql-go |
| 4.8K |
| Go |
| BSD-2-Clause |
| graph-gophers/graphql-go | 4.8K | Go | BSD-2-Clause |
| apollographql/graphql-tools | 5.4K | TypeScript | MIT |
| ardatan/graphql-tools | 5.4K | TypeScript | MIT |
| a-h/templ | 10.4K | Go | MIT |
| xo/dbtpl | 3.9K | Go | MIT |
| gogo/protobuf | 5.7K | Go | NOASSERTION |
| gorilla/mux | 21.8K | Go | BSD-3-Clause |