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
.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