GraphQL Kotlin vs Hasura
GraphQL Kotlin
opensource.expediagroup.comHasura
hasura.ioSide by side
| Figure | GraphQL Kotlin | Hasura |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Linux | — | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 3 |
| Spec score · GraphQL Tools | 8.0 (#8) | 7.7 (#13) |
| Integrations | Reference client implementations use Ktor HTTP Client and Spring WebClient, and custom implementations can use other engines. | Hasura Cloud lists GitHub integration for CI/CD and observability integrations such as Datadog, New Relic, Azure Monitor, Prometheus, and OpenTelemetry. |
| Security | The repository README directs users to SECURITY.md for security issue contact information and supported versions receiving security updates. | Hasura Cloud lists query allow lists, optional GraphQL introspection disabling, security event logging, access controls, and DDoS monitoring among its security features. |
| Support | The maintainers invite questions through GitHub Discussions and the public #graphql-kotlin channel on Kotlin Slack. | The Cloud Free plan includes community and email/ticketed support, Professional includes expert technical support, and Enterprise includes 24x7 expert technical support with customizable SLAs. |
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.
Hasura
Hasura is a hybrid API platform that generates data APIs over connected databases, so developers do not need to write handlers, schemas, or resolvers. Hasura Cloud plans provide instant GraphQL APIs, RESTified endpoints, and GraphQL subscriptions. Listed database sources include Postgres-compatible systems, Microsoft SQL Server, BigQuery, Amazon Athena, Snowflake, MySQL, Oracle, MariaDB, MongoDB, and ClickHouse. APIs can be extended with remote schemas, remote joins, Actions, and event or scheduled triggers. Authorization can use an authentication provider of the customer’s choice, with JWT controls through headers, cookies, or webhooks. Cloud hosting is available on AWS, Google Cloud Platform, and Microsoft Azure Cloud. The Community Edition can run from a Docker image, while Enterprise Edition supports on-premises deployment. Hasura Cloud also lists GitHub, observability integrations, query allow lists, access controls, and DDoS monitoring. Plans include a free tier and paid options.