Docs
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.

LanguageLibraryFederation 1 SupportFederation 2 Support
C# (.NET)GraphQL for .NET
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
C# (.NET)Hot Chocolate
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
Elixir (Absinthe)Absinthe.Federation
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
Gogqlgen
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
Java / Kotlindgs-framework
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
Java / KotlinFederation JVM
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
Java / KotlinGraphQL Kotlin
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
JavaScript / TypeScriptApollo Server
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
JavaScript / TypeScriptexpress-graphql
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
JavaScript / TypeScriptGraphQL Yoga
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
JavaScript / TypeScriptMercurius
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
MultipleAWS AppSync
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
PHPApollo Federation PHP
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
PHP (Laravel)Lighthouse
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
PythonAriadne
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
PythonGraphene
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
PythonStrawberry
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
RubyGraphQL Ruby
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
RustAsync-graphql
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible
ScalaCaliban
_service
@key (single)
@key (multi)
@key (composite)
@requires
@provides
@ftv1
@link
@shareable
@tag
@override
@inaccessible

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
Previous
OpenTelemetry
Next
Subgraph specification