GraphQL Kotlin vs Sangria
GraphQL Kotlin
opensource.expediagroup.comSangria
sangria-graphql.github.ioSide by side
| Figure | GraphQL Kotlin | Sangria |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | — | — |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 0 |
| Spec score · GraphQL Tools | 8.0 (#8) | 6.8 (#22) |
| Integrations | Reference client implementations use Ktor HTTP Client and Spring WebClient, and custom implementations can use other engines. | The project says Sangria is spec compliant and works with Apollo, Relay, GraphiQL, and other GraphQL tools and libraries. |
| Intended users | The project describes its common use cases as running a GraphQL server and generating a type-safe client in Kotlin. | The documentation presents Sangria as a library for Scala developers building GraphQL servers and endpoints. |
| License | The library is licensed under Apache License 2.0. | The Sangria repository states that the project is licensed under Apache License 2.0. |
| Purpose | GraphQL Kotlin is a collection of libraries built on graphql-java to run GraphQL clients and servers in Kotlin. | Sangria is a Scala implementation of GraphQL. |
| Support | The maintainers invite questions through GitHub Discussions and the public #graphql-kotlin channel on Kotlin Slack. | The community page directs users to Stack Overflow for help and Gitter for general discussion. |
Plans
In their own words
GraphQL Kotlin
GraphQL Kotlin is a free Apache License 2.0 collection of libraries, built on graphql-java, for running GraphQL clients and servers in Kotlin. Its schema generator creates schemas from Kotlin code, and a federation module can produce Apollo Federation-compliant schemas. Gradle and Maven plugins generate type-safe Kotlin clients from existing schemas. Generated clients support queries, mutations, batching, coroutines, custom scalars, configurable enum defaults, and Jackson or kotlinx.serialization models. Reference HTTP integrations use Ktor HTTP Client and Spring WebClient, while custom engines are possible. Server implementations target Spring Boot and Ktor; the Spring server uses Spring WebFlux. Ktor supports Kotlin Flow subscriptions over WebSockets with the graphql-transport-ws subprotocol. Its plugin leaves route configuration to the application, allowing selective routes and added authentication logic. The schema generator supports Kotlin Lists, but Sets, arbitrary Maps, and arrays are not supported out of the box. The project is self-hosted, with security guidance in its repository and community support through GitHub Discussions and Kotlin Slack.
Sangria
Sangria has no write-up on Specifiction yet; its figures are above.