Launch Apollo Studio

Subgraph-compatible server libraries


The following open-source GraphQL server libraries support acting as a subgraph in a federated graph, and their support is tracked in Apollo's subgraph compatibility repository. Check out the repository for details on the compatibility tests listed in the table below.

Language Framework _service @key (single) @key (multi) @key (composite) @requires @provides ftv1
AppSync aws-appsync ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dotnet graphql-dotnet ✔️ ✔️
Elixir absinthe_federation ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
(in progress)
Go gqlgen ✔️ ✔️* ✔️* ✔️ ✔️
JavaScript apollo-server ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
JavaScript express-graphql ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Java federation-jvm ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Java / Kotlin dgs ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Kotlin graphql-kotlin ✔️ ✔️* ✔️* ✔️* ✔️ ✔️ ✔️
PHP apollo-federation-php ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Python graphene ✔️ ✔️ ✔️ ✔️ ✔️
Python ariadne ✔️ ✔️* ✔️* ✔️* ✔️ ✔️
Python strawberry-graphql ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Ruby apollo-federation-ruby ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Rust async-graphql ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Scala caliban ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

* Library does not support multiple @key definitions, but all types of @key definitions are supported

To add a library to this list, feel free to open an issue or check out the Apollo Federation Library Maintainers Implementation Guide to learn how to submit a PR for your library!

Edit on GitHub