github Kotlin/kotlinx-rpc 0.11.0-grpc-185
0.11.0-grpc-185 (dev preview)

pre-release10 hours ago

This is a development preview release. APIs are subject to change and may break without notice in future versions.

Overview

This release introduces gRPC and Protocol Buffers support for kotlinx-rpc — a Kotlin Multiplatform implementation of gRPC with native protobuf serialization.

Try it now — generate a gRPC + Ktor project with the Ktor Project Generator.

Two approaches are supported:

  • Schema-first — define services and messages in .proto files, and the Gradle plugin generates
    idiomatic Kotlin code with suspend functions, Flow-based streaming, and type-safe message builders.
    See the gRPC configuration and
    generated code docs.
  • Proto-less — write gRPC service interfaces directly in Kotlin with any serialization format
    (kotlinx.serialization, custom GrpcMarshaller, etc.), no .proto files needed.
    See the gRPC services docs.

Supported gRPC workflows:

  • Unary RPC (request-response)
  • Server streaming (server returns Flow)
  • Client streaming (client sends Flow)
  • Bidirectional streaming (both sides use Flow)
  • Client and server interceptors
  • TLS encryption and call credentials
  • Call metadata (headers and trailers)
  • Timeout, gzip compression, and keepalive support
  • Ktor server integration
  • Status exception handling
  • proto-less gRPC services

Supported protobuf features:

  • Proto2, proto3, and editions 2023 syntax
  • All scalar types, enums, repeated fields, maps, oneof, nested messages
  • Optional types and field presence tracking
  • Extensions and groups (deprecated proto2 feature)
  • Well-Known Types (bundled with the runtime)
  • Unknown field propagation
  • Full protobuf conformance test compliance
  • Custom serialization via kotlinx.serialization or custom GrpcMarshaller

Supported platforms: JVM, Android, iOS, macOS, Linux.

Features 🎉

Bug fixes 🐛

Documentation 📗

Infra 🚧

Other Changes 🧹

  • Protoc-gen-kotlin-multiplatform as an included build by @Mr3zee in #411
  • Gradle plugin tests by @Mr3zee in #413
  • Fix condition for non-JVM projects by @Mr3zee in #417
  • Protoc-plugin intermediate model refactoring by @Jozott00 in #418
  • Integration tests for gRPC + Protoc generated files by @Mr3zee in #444
  • Remove InputStream abstraction in common by @Jozott00 in #571
  • Konan LLVM bundle mapping update by @Jozott00 in #585

Full Changelog: 0.10.2...0.11.0-grpc-185

Don't miss a new kotlinx-rpc release

NewReleases is sending notifications on new releases.