Can I use ... in GraphQL ?
A directory of newer GraphQL features, both drafted and experimental, and the state of their support across different projects.
The data for this website is open source (GitHub repository) and contributions are warmly welcome. Please see CONTRIBUTING.md for how to add a new project, feature, or to add an existing feature to an existing project.
Background
GraphQL is a wonderful piece of technology. The GraphQL spec has been a very solid foundation for the past 10 years. It's not (yet!) perfect though. Friction points exist and the community has been hard at work improving the daily GraphQL experience.
Most of the friction points have identified solutions in the form of RFCs. Some of them have made it to the spec (`@oneOf`, schema coordinates, ...). Others remain in experimental state. As time passes, it's becoming harder and harder to tell what feature is implemented where. This website bridges that GAP.
Projects
| Project Name | Type | Not applicable | Unsupported | Supported |
|---|---|---|---|---|
| Apollo Client | client | 7 | 4 | 12.5 |
| Apollo Kotlin | client | 0 | 2 | 21 |
| Apollo Router | gateway | 0 | 12 | 11 |
| Apollo Server | server | 0 | 11 | 12.5 |
| Apollo iOS | client | 2 | 9 | 12 |
| Domain Graph Service (DGS) Framework | server | 1 | 12 | 10.5 |
| GraphQL Code Generator | tool | 2 | 13 | 9 |
| GraphQL Java | server | 2 | 11 | 11 |
| GraphQL Kotlin | server | 0 | 13 | 10.5 |
| GraphQL Yoga | server | 0 | 9 | 14.5 |
| GraphQL.js | server | 4 | 9 | 11 |
| GraphiQL | ide | 0 | 15 | 9 |
| Grats | server | 7 | 7 | 10 |
| Hive Gateway | gateway | 0 | 9 | 13.5 |
| Hot Chocolate | server | 0 | 3 | 20.5 |
| Relay | client | 1 | 11 | 11 |
| Spring for GraphQL | server | 0 | 15 | 9 |
| gql.tada | tool | 5 | 8 | 10.5 |
| urql | client | 7 | 5 | 11.5 |
Features
| Feature | Not Applicable | Unsupported | Supported |
|---|---|---|---|
| MutationsJul 2015 | 0 | 0 | 19 |
| QueriesJul 2015 | 0 | 0 | 19 |
| SubscriptionsJun 2018 | 0 | 0 | 19 |
| Repeatable DirectivesOct 2021 | 0 | 0 | 19 |
| @specifiedByOct 2021 | 0 | 0 | 19 |
| Directives on Variable DefinitionsOct 2021 | 0 | 0 | 19 |
| Interfaces on InterfacesOct 2021 | 0 | 0 | 19 |
| @oneOfSep 2025 | 2 | 7 | 10 |
| Deprecated input valuesSep 2025 | 0 | 0 | 19 |
| Executable documents descriptionsSep 2025 | 2 | 11 | 5.5 |
| 'application/graphql-response+json' media typedraft | 7 | 1 | 11 |
| '@defer'ExperimentalRFC2 | 1 | 7 | 8.5 |
| '@stream'ExperimentalRFC2 | 2 | 9 | 7 |
| Directives on directivesExperimentalRFC2 | 2 | 16 | 1 |
| Fragment ArgumentsExperimentalRFC2 | 1 | 14 | 4 |
| 'onError' request parameterExperimentalRFC1 | 0 | 17 | 2 |
| Deprecated objectsExperimentalRFC1 | 2 | 17 | 0 |
| Service capabilitiesExperimentalRFC1 | 3 | 14 | 2 |
| Field extensionsExperimentalRFC0 | 1 | 17 | 1 |
| @semanticNonNullExperimental | 3 | 11 | 5 |
| Automatic Persisted QueriesExperimental | 3 | 5 | 11 |
| HTTP batchingExperimental | 1 | 13 | 4.5 |
| Persisted DocumentsExperimental | 4 | 5 | 5 |
| Semantic IntrospectionExperimental | 4 | 14 | 1 |