$ account graph-gophers
This is a production-grade GraphQL server library for Go. It parses GraphQL SDL into an AST, validates incoming queries against the schema, executes queries/mutations/subscriptions by binding Go structs and methods as resolvers, and supports introspection, tracing, and basic Apollo Federation. The public API centers on graphql.ParseSchema/MustParseSchema and Schema.Exec, with a relay.Handler for HTTP transport. Internally, the code is organized into focused packages for lexing, parsing, validation, execution, and tracing, with a clear separation between schema representation (ast), resolvable binding, and runtime execution. The library is not a service or data pipeline; it is a component meant to be embedded in Go HTTP servers, as demonstrated by the example/starwars, example/social, example/caching, and example/federation servers. Architecturally, the codebase is a well-structured library with minimal external dependencies beyond the Go standard library. Optional integrations exist for OpenTelemetry and OpenTracing, and the validation test corpus is derived from the graphql-js reference implementation. The execution engine uses reflection-based resolver binding, supports field selection inspection, memory pooling, and configurable validation limits. The repository is actively maintained, targets the September 2025 GraphQL spec, and includes extensive unit tests, fuzz tests, and benchmarks. Some deprecated APIs remain (e.g., the old trace package and DisableIntrospection), but they are clearly marked and superseded by modern equivalents. Overall, this is a mature, high-quality library with strong engineering practices and reusable internal patterns.