Changelog
This page contains all changes throughout releases of the library.
0.11.0-grpc-188
Full Changelog: 0.11.0-grpc-187...0.11.0-grpc-188
Features ๐
KRPC-239 Add option to disable default protoc plugins by @Mr3zee in #649
KRPC-254 Strip redundant enum value prefixes in protoc-gen by @Mr3zee in #650
KRPC-237: Add kotlinx.rpc.protoc Gradle property to enable protoc by @ai-agent-kxrpc [bot] in #653
KRPC-533: Add SubclassOptInRequired to generated proto messages by @ai-agent-kxrpc [bot] in #656
Bug fixes ๐
KRPC-245 Fix eager configuration resolution warning in Gradle 9.0 by @Mr3zee in #651
KRPC-275 Reject invalid UTF-8 in protobuf string extension fields by @Mr3zee in #648
KRPC-268: Fix missing leading space in generated KDoc block comments by @ai-agent-kxrpc [bot] in #654
KRPC-266 Move ProtobufException classes to public package by @ai-agent-kxrpc [bot] in #655
KRPC-274: Reject bad tag field numbers and overlong varints in protobuf parser by @ai-agent-kxrpc [bot] in #657
KRPC-548: Fix flaky CancellationTest.testCancelServer on native by @ai-agent-kxrpc [bot] in #660
KRPC-549: Fix flaky GrpcTimeoutTest by increasing server delay margin by @ai-agent-kxrpc [bot] in #658
KRPC-556: Add markerClass parameter to SubclassOptInRequired annotations by @ai-agent-kxrpc [bot] in #659
KRPC-267: Add blank line before properties with block comments in protoc-gen by @ai-agent-kxrpc [bot] in #667
KRPC-560: Fix Native segfault in callables property itable dispatch by @ai-agent-kxrpc [bot] in #668
KRPC-554: Reject bad tag field numbers and overlong varints in native protobuf parser by @ai-agent-kxrpc [bot] in #669
KRPC-558: Reject invalid UTF-8 in protobuf string fields on native by @ai-agent-kxrpc [bot] in #666
KRPC-564: Reject >10-byte varint tags in protobuf parser by @ai-agent-kxrpc [bot] in #672
KRPC-562: Use ephemeral ports in gRPC integration tests by @ai-agent-kxrpc [bot] in #670
KRPC-561: Explicit grpc_channel_destroy before grpc_shutdown in NativeManagedChannel by @ai-agent-kxrpc [bot] in #671
KRPC-252: Support type resolution in comments for protoc-gen by @ai-agent-kxrpc [bot] in #673
KRPC-567: Fix race in ServerStreamContext.removeCall causing flaky test by @ai-agent-kxrpc [bot] in #681
KRPC-597: Fix grpc native release race conditions by @ai-agent-kxrpc [bot] in #711
Documentation ๐
KRPC-440: Clarify Android JVM support on platforms page by @ai-agent-kxrpc [bot] in #664
Infra ๐ง
KRPC-555: Port protobuf conformance tests to Kotlin/Native by @ai-agent-kxrpc [bot] in #661
KRPC-565: Fix deprecated abiValidation enabled API for Kotlin >= 2.4.0 by @ai-agent-kxrpc [bot] in #676
KRPC-569: Exclude native conformance test when native targets are unavailable by @ai-agent-kxrpc [bot] in #680
Add use-develocity skill for build scan analysis by @Mr3zee in #683
KRPC-571: Fix configuration cache misses on every local build by @ai-agent-kxrpc [bot] in #684
KRPC-541: Align native shim versions with JVM catalog versions by @ai-agent-kxrpc [bot] in #678
KRPC-577: Add .gradle-home to .gitignore for CI Docker cache by @ai-agent-kxrpc [bot] in #685
KRPC-573: Remove hardcoded workers.max to scale with CPU cores by @ai-agent-kxrpc [bot] in #687
KRPC-572: Enable local Gradle build cache alongside remote Develocity cache by @ai-agent-kxrpc [bot] in #689
Add CI polling scripts for fix-issue skill by @Mr3zee in #690
KRPC-574: Make BufGenerateTask cacheable by @ai-agent-kxrpc [bot] in #691
KRPC-583: Reduce configuration phase overhead from settings plugins by @ai-agent-kxrpc [bot] in #692
KRPC-580: Make GenerateBufYaml cacheable by @ai-agent-kxrpc [bot] in #700
KRPC-595: Make BufGenerateTask actually cacheable (remove overlapping outputs) by @ai-agent-kxrpc [bot] in #704
KRPC-596: Make protobuf conformance tasks cacheable by @ai-agent-kxrpc [bot] in #705
Other Changes ๐งน
KRPC-183 Add little-endian platform guard to native protobuf codec by @Mr3zee in #646
Add fix-issue skill for autonomous YT issue resolution by @Mr3zee in #652
KRPC-568: Skip testCancelServer on wasmWasi due to EAGAIN flakiness by @ai-agent-kxrpc [bot] in #677
KRPC-584: Skip testClientCancellationCancelsStream on wasmWasi (flaky) by @Mr3zee in #693
New Contributors
@ai-agent-kxrpc [bot] made their first contribution in #653
0.11.0-grpc-187
Full Changelog: 0.11.0-grpc-186...0.11.0-grpc-187
Bug fixes ๐
Infra ๐ง
Other Changes ๐งน
0.11.0-grpc-186
Full Changelog: 0.11.0-grpc-185...0.11.0-grpc-186
Features ๐
Bug fixes ๐
Documentation ๐
Infra ๐ง
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
.protofiles, and the Gradle plugin generates idiomatic Kotlin code withsuspendfunctions,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, customGrpcMarshaller, etc.), no.protofiles 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.serializationor customGrpcMarshaller
Supported platforms: JVM, Android, iOS, macOS, Linux.
Features ๐
Internal vs public codegen separation in gRPC (KRPC-162) by @Mr3zee in #285
Streaming support (unary, server, client, bidirectional) by @Mr3zee in #389
Native initial setup with C++/C/Kotlin interface by @Jozott00 in #400
Proto generation for common (JVM and Native) by @Jozott00 in #415
Common APIs for gRPC Services, Client, and Server by @Mr3zee in #419
Field presence tracking, required field enforcing, and MessageCodec generation by @Jozott00 in #421
gRPC service generation in the compiler plugin by @Mr3zee in #428
Sub-messages (recursive, nested, repeated) by @Jozott00 in #430
iOS support (arm64, x64, simulatorArm64) by @Jozott00 in #458
TLS credentials support (client and server) by @Jozott00 in #471
hashCode,equalsandtoStringfor generated messages by @Mr3zee in #490Add
protoServiceNameto[@Grpc](https://github.com/Grpc)annotation by @Jozott00 in #563ProtobufConfigwithdiscardUnknownFieldsoption by @Jozott00 in #569[@GeneratedProtoMessage](https://github.com/GeneratedProtoMessage)annotation and descriptor object by @Jozott00 in #572Shortest unambiguous names in generated code by @Mr3zee in #573 and #575
Companion object generation moved to the compiler plugin by @Mr3zee in #586
MARSHALLER and DESCRIPTOR objects for group messages by @Jozott00 in #589
Bug fixes ๐
Fix service names in the generated descriptor by @Jozott00 in #457
Fix
onReady()listener delegation — native server streaming fix (KRPC-220) by @Jozott00 in #477Fix retry behavior for client RPC calls by @Jozott00 in #545
Fix protobuf size calculation for repeated fields and maps by @fabiocarneiro in #566
Add
grpc-marshallerdependency toprotobuf-core(KRPC-219) by @Mr3zee in #595
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 ๐
Bug fixes ๐
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 ๐ด
Features ๐
Bug fixes ๐
Documentation ๐
Update grpc-configuration.topic by @flockbastian in #450
Fix typo in docs grpc-configuration.topic by @sebaslogen in #495
Infra ๐ง
Other Changes ๐งน
New Contributors
@flockbastian made their first contribution in #450
@sebaslogen made their first contribution in #495
0.9.1
Full Changelog: 0.8.1...0.9.1
Bug fixes ๐
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.serializationfrom the core functionalitySimplifying 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 ๐ด
Bug fixes ๐
Documentation ๐
Other Changes ๐งน
New Contributors
@brokenhappy made their first contribution in #342
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 ๐ด
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 ๐งน
0.5.1
Full Changelog: 0.5.0...0.5.1
Features ๐
Documentation ๐
Fix typo in README.md by @SebastianAigner in #266
Infra ๐ง
Other Changes ๐งน
New Contributors
@SebastianAigner made their first contribution in #266
0.5.0
Full Changelog: 0.4.0...0.5.0
Features ๐
Breaking Changes ๐ด
Deprecations โ ๏ธ
Infra ๐ง
Other Changes ๐งน
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 ๐
Documentation ๐
Infra ๐ง
Other Changes ๐งน
New Contributors
0.2.4
Full Changelog: 0.2.2...0.2.4
Features
Bug fixes
Infra
New Contributors
@pikinier20 made their first contribution in #158
0.2.2
Full Changelog: 0.2.1...0.2.2
Bug fixes
0.2.1
Full Changelog: 0.1.0...0.2.1
Breaking changes
Release contains breaking changes, see the migration guide
Features
Bug fixes
Deprecations
Documentation
Infra
New Contributors
@fatalistt made their first contribution in #76
@zhelenskiy made their first contribution in #87
@vnikolova made their first contribution in #86