A collection of libraries for building and running GraphQL clients and servers in Kotlin.
GraphQL Kotlin is a collection of libraries that enable developers to build and run GraphQL servers and clients in Kotlin. It provides a code-first schema generation approach, allowing you to define your GraphQL API directly in Kotlin code, and includes tools for creating type-safe clients and supporting federated architectures.
Kotlin developers building GraphQL APIs or clients, especially those working in microservices environments or seeking type-safe GraphQL integration.
Developers choose GraphQL Kotlin for its seamless integration with Kotlin's type system, reducing boilerplate and errors, and its comprehensive toolset that supports both server and client-side GraphQL operations with popular frameworks like Ktor and Spring.
Libraries for running GraphQL in Kotlin
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows defining GraphQL schemas directly in Kotlin code, leveraging type safety to reduce errors and boilerplate, as emphasized in the key features.
Enables building federated GraphQL schemas for microservices architectures, making it ideal for scalable distributed systems, as highlighted in the documentation.
Generates lightweight HTTP clients using Ktor or Spring WebClient, ensuring compile-time safety for GraphQL operations and reducing runtime bugs.
Provides Gradle and Maven plugins for automating schema and client code generation during builds, streamlining development workflows.
Built on top of graphql-java, so it inherits its limitations, updates, and potential breaking changes, which can affect stability and compatibility.
Primarily designed for Kotlin applications, making it less suitable for projects using other JVM languages or non-JVM environments without additional integration effort.
With multiple modules and server options, initial setup and customization can be non-trivial, especially for developers new to GraphQL or Kotlin tooling.