kotlinx.rpc 0.10.2 Help

Changelog

This page contains all changes throughout releases of the library.

0.11.0-grpc-185

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

Overview

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

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 ๐Ÿงน

0.10.2

Full Changelog: 0.10.1...0.10.2

Features ๐ŸŽ‰

Bug fixes ๐Ÿ›

Infra ๐Ÿšง

Other Changes ๐Ÿงน

0.10.1

Full Changelog: 0.10.0...0.10.1

Features ๐ŸŽ‰

  • Kotlin 2.2.21 Support by @Mr3zee in #519

  • Expose RpcServiceDescriptor.callables by @rnett in #516

  • Added watchosDeviceArm64 and watchosArm32 targets to kRPC by @Mr3zee in #513

Bug fixes ๐Ÿ›

  • Fix one more ClosedSendChannelException by @Mr3zee in #514

  • Fix scope initialization on the kRPC Client by @Mr3zee in #505

  • Fix wording for the perCallBufferSize docs by @Mr3zee in #500

Infra ๐Ÿšง

New Contributors

0.10.0

Full Changelog: 0.9.1...0.10.0

Overview

This release brings a lot of changes, work:

  • Kotlin 2.2.20 and 2.2.10 support

  • kRPC: Backpressure

To read about the backpressure feature, see the updated kRPC Configuration page.

Breaking Changes ๐Ÿ”ด

  • Allow suspend calls inside ktor rpc builder #433 by @Mr3zee in #439

Features ๐ŸŽ‰

Bug fixes ๐Ÿ›

  • Add collect once check for client streams by @Mr3zee in #431

  • Fix diagnostic rendering for compiler plugins checkers by @Mr3zee in #432

  • fix wrong unchecked null cast (potential NPE) by @y9maly in #445

Documentation ๐Ÿ“—

Infra ๐Ÿšง

  • Fix docs yaml and signing tasks by @Mr3zee in #404

  • Fix jdk resolution problems on CI by @Mr3zee in #406

  • Use compat-patrouille for compatibility settings by @Mr3zee in #438

Other Changes ๐Ÿงน

  • Fix how we create 'publishMavenArtifact' tasks by @Mr3zee in #416

  • Update grpc-sample app by @Mr3zee in #425

  • Fix LV and signing by @Mr3zee in #424

  • Update ktor-all-platforms-app sample to sync service creation by @Mr3zee in #455

  • Added Ktor closure tests and Cancellation tests, + minor fixes by @Mr3zee in #479

  • Fix flaky tests by @Mr3zee in #481

New Contributors

0.9.1

Full Changelog: 0.8.1...0.9.1

Bug fixes ๐Ÿ›

  • Support nullable contextual serializers by @yakivy in #392

  • Make WS plugin installation for Ktor server more flexible by @Mr3zee in #398

  • Make KtorRpcClient inherit KrpcClient by @Mr3zee in #396

Documentation ๐Ÿ“—

Infra ๐Ÿšง

Other Changes ๐Ÿงน

0.8.1

Full Changelog: 0.8.0...0.8.1

Bug fixes ๐Ÿ›

Documentation ๐Ÿ“—

Infra ๐Ÿšง

Other Changes ๐Ÿงน

New Contributors

0.8.0

Full Changelog: 0.7.0...0.8.0

Overview

This release brings a lot of changes, including breaking changes:

  • Kotlin 2.2.0 Update

  • Decoupling of kotlinx.serialization from the core functionality

  • Simplifying lifetime schema (services lost their CoroutineScope)

  • Irreversible enforcement of the strict mode

These changes significantly reduce the number of footguns and improve the overall usability of the library.

Additionally, the internal structure of kRPC protocol and our compiler plugin reduced its complexity. That allows us to provide better quality in future releases (and this also applies to gRPC, even though in this particular release it was not a priority).

For the full list of changes that require migration, see the Migration Guide.

Docs update

We added three new documentation sections:

Features ๐ŸŽ‰

Breaking Changes ๐Ÿ”ด

  • [Meta] Strict mode, deprecations, lifetime by @Mr3zee in #353

Bug fixes ๐Ÿ›

Documentation ๐Ÿ“—

Other Changes ๐Ÿงน

New Contributors

0.7.0

Full Changelog: 0.6.2...0.7.0

Announcement

This release enforces ERROR as a default reporting level for APIs that are forbidden by the strict mode. You can still change the level manually, but in 0.8.0 strict mode will be enforced irreversibly.

Breaking Changes ๐Ÿ”ด

  • Change strict mode to level ERROR by default by @Mr3zee in #338

Other Changes ๐Ÿงน

0.6.2

Full Changelog: 0.6.1...0.6.2

Bug fixes ๐Ÿ›

0.6.1

Full Changelog: 0.6.0...0.6.1

Bug fixes ๐Ÿ›

0.6.0

Full Changelog: 0.5.1...0.6.0

Features ๐ŸŽ‰

Documentation ๐Ÿ“—

Infra ๐Ÿšง

Other Changes ๐Ÿงน

  • Upgrade Gradle to 8.12.1 by @Mr3zee in #286

  • Version 0.6.0-SNAPSHOT by @Mr3zee in #283

  • Update leftover sources from jvm-only to kmp by @Mr3zee in #300

  • KRPC-129 Move compatibility tests from Toolbox to Kotlin RPC repo by @Mr3zee in #304

  • Dependency bump by @Mr3zee in #303

  • Better compiler error message for checked annotations by @Mr3zee in #302

0.5.1

Full Changelog: 0.5.0...0.5.1

Features ๐ŸŽ‰

Documentation ๐Ÿ“—

Infra ๐Ÿšง

Other Changes ๐Ÿงน

New Contributors

0.5.0

Full Changelog: 0.4.0...0.5.0

Features ๐ŸŽ‰

Breaking Changes ๐Ÿ”ด

  • Api naming by @Mr3zee in #236

  • Update Service Descriptors Generation by @Mr3zee in #227

  • Added basic CheckedTypeAnnotation impl with compiler plugin check by @Mr3zee in #240

Deprecations โš ๏ธ

Infra ๐Ÿšง

  • Update the project structure to work with kotlin-master by @Mr3zee in #234

  • Fixed version formatting with ENV vars by @Mr3zee in #235

  • Fix Kotlin master compilation by @Mr3zee in #245

  • Opt-out from annotations type safety analysis by @Mr3zee in #246

Other Changes ๐Ÿงน

  • Added test for non-serializable params by @Mr3zee in #237

  • Updated descriptor to use RpcType instead of KType directly by @Mr3zee in #239

0.4.0

Full Changelog: 0.3.0...0.4.0

Features ๐ŸŽ‰

Breaking Changes ๐Ÿ”ด

Infra ๐Ÿšง

Bug fixes ๐Ÿ›

Other Changes ๐Ÿงน

0.3.0

Full Changelog: 0.2.4...0.3.0

Features ๐ŸŽ‰

Breaking Changes ๐Ÿ”ด

Bug fixes ๐Ÿ›

  • Fix kotlin/js code and samples by @Mr3zee in #179

  • Fix regression of nested declarations in RPC interfaces by @Mr3zee in #181

Documentation ๐Ÿ“—

Infra ๐Ÿšง

Other Changes ๐Ÿงน

New Contributors

0.2.4

Full Changelog: 0.2.2...0.2.4

Features

  • KRPC-18 Add K2 and IR code generation plugins, preserve KSP for K1 by @Mr3zee in #105

  • Added 1.9.25 and 2.0.10 Kotlin Versions by @Mr3zee in #168

Bug fixes

  • KRPC-101 Check if the entire stream is not already closed. by @pikinier20 in #158

  • KRPC-119 Exception Deserialization by @Mr3zee in #170

  • Fix compilation on Kotlin/Native by @Mr3zee in #172

Infra

New Contributors

0.2.2

Full Changelog: 0.2.1...0.2.2

Bug fixes

  • Fix log error messages by @Mr3zee in #139

  • KRPC-97 Race condition in stream cancellation locks the transport by @Mr3zee in #138

  • Fix call cancellation by @Mr3zee in #141

0.2.1

Full Changelog: 0.1.0...0.2.1

Breaking changes

Release contains breaking changes, see the migration guide

  • Update the project structure to use a new versioning by @Mr3zee in #92

  • Consistent module structure by @Mr3zee in #114

  • KRPC-63 Reorganize modules into a logical structure by @Mr3zee in #110

Features

  • KRPC-62 WebSocketSession KtorRPCClient by @Mr3zee in #107

Bug fixes

Deprecations

  • KRPC-59 streamScoped has internal package by @Mr3zee in #104

Documentation

  • Updated links on the docs website by @Mr3zee in #71

  • Added search indexes publication to Algolia action by @Mr3zee in #73

  • Fix algolia artifact in GH Actions by @Mr3zee in #80

  • Docs: Add structure to existing content by @vnikolova in #86

  • Added build and test docs on PR by @Mr3zee in #97

  • Fixed GH Actions for docs by @Mr3zee in #99

  • Disable docs website autoupdate by @Mr3zee in #108

  • KRPC-60 Update docs to match the new versioning scheme by @Mr3zee in #109

Infra

New Contributors

Last modified: 12 March 2026