Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ env:
ALGOLIA_INDEX_NAME: 'prod_kotlin_rpc'
ALGOLIA_KEY: '${{ secrets.ALGOLIA_KEY }}'
CONFIG_JSON_PRODUCT: 'kotlinx-rpc'
CONFIG_JSON_VERSION: '0.10.0'
CONFIG_JSON_VERSION: '0.10.1'
DOKKA_ARTIFACT: 'dokka.zip'
ASSEMBLE_DIR: '__docs_assembled'
ASSEMBLE_ARTIFACT: 'assembled.zip'
Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
# 0.10.1
> Published 27 October 2025

### Features 🎉
* Kotlin 2.2.21 Support by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/519
* Expose RpcServiceDescriptor.callables by @rnett in https://github.com/Kotlin/kotlinx-rpc/pull/516
* Added watchosDeviceArm64 and watchosArm32 targets to kRPC by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/513

### Bug fixes 🐛
* Fix one more ClosedSendChannelException by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/514
* Fix scope initialization on the kRPC Client by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/505
* Fix wording for the `perCallBufferSize` docs by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/500

### Infra 🚧
* Added readme safeguard by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/515
* Fixed kRPC compatibility tests by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/518
* Update compiler tests infra by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/510

## New Contributors
* @rnett made their first contribution in https://github.com/Kotlin/kotlinx-rpc/pull/516

**Full Changelog**: https://github.com/Kotlin/kotlinx-rpc/compare/0.10.0...0.10.1

# 0.10.0
> Published 7 October 2025

Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

[![Kotlin Experimental](https://kotl.in/badges/experimental.svg)](https://kotlinlang.org/docs/components-stability.html)
[![Official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
[![Kotlin](https://img.shields.io/badge/kotlin-2.0.0--2.2.20-blue.svg?logo=kotlin)](http://kotlinlang.org)
[![Kotlin](https://img.shields.io/badge/kotlin-2.0.0--2.2.21-blue.svg?logo=kotlin)](http://kotlinlang.org)
[![GitHub License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0)

[//]: # ([![TeamCity build](https://img.shields.io/teamcity/build/s/Build_kRPC_All.svg?server=http%3A%2F%2Fkrpc.teamcity.com)](https://teamcity.jetbrains.com/viewType.html?buildTypeId=Build_kRPC_All&guest=1))
Expand Down Expand Up @@ -102,7 +102,7 @@ To ensure that all IDE features of our compiler plugin work properly on IntelliJ
We support all stable Kotlin versions starting from 2.0.0:
- 2.0.0, 2.0.10, 2.0.20, 2.0.21
- 2.1.0, 2.1.10, 2.1.20, 2.1.21
- 2.2.0, 2.2.10, 2.2.20
- 2.2.0, 2.2.10, 2.2.20, 2.2.21

For a full compatibility checklist,
see [Versions](https://kotlin.github.io/kotlinx-rpc/versions.html).
Expand Down Expand Up @@ -134,9 +134,9 @@ that will set up code generation in a project.
Example of a setup in a project's `build.gradle.kts`:
```kotlin
plugins {
kotlin("multiplatform") version "2.2.20"
kotlin("plugin.serialization") version "2.2.20"
id("org.jetbrains.kotlinx.rpc.plugin") version "0.10.0"
kotlin("multiplatform") version "2.2.21"
kotlin("plugin.serialization") version "2.2.21"
id("org.jetbrains.kotlinx.rpc.plugin") version "0.10.1"
}
```

Expand All @@ -151,15 +151,15 @@ And now you can add dependencies to your project:
```kotlin
dependencies {
// Client API
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-client:0.10.0")
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-client:0.10.1")
// Server API
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-server:0.10.0")
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-server:0.10.1")
// Serialization module. Also, protobuf and cbor are provided
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-serialization-json:0.10.0")
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-serialization-json:0.10.1")

// Transport implementation for Ktor
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-client:0.10.0")
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-server:0.10.0")
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-client:0.10.1")
implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-server:0.10.1")

// Ktor API
implementation("io.ktor:ktor-client-cio-jvm:$ktor_version")
Expand Down
2 changes: 1 addition & 1 deletion core/api/core.api
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public abstract interface class kotlinx/rpc/descriptor/RpcParameter {
public abstract interface class kotlinx/rpc/descriptor/RpcServiceDescriptor {
public abstract fun createInstance (JLkotlinx/rpc/RpcClient;)Ljava/lang/Object;
public abstract fun getCallable (Ljava/lang/String;)Lkotlinx/rpc/descriptor/RpcCallable;
public abstract fun getCallableMap ()Ljava/util/Map;
public abstract fun getCallables ()Ljava/util/Map;
public abstract fun getFqName ()Ljava/lang/String;
}

Expand Down
4 changes: 2 additions & 2 deletions core/api/core.klib.api
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ abstract interface <#A: kotlin/Any> kotlinx.rpc.descriptor/RpcCallable { // kotl
}

abstract interface <#A: kotlin/Any> kotlinx.rpc.descriptor/RpcServiceDescriptor { // kotlinx.rpc.descriptor/RpcServiceDescriptor|null[0]
abstract val callableMap // kotlinx.rpc.descriptor/RpcServiceDescriptor.callableMap|{}callableMap[0]
abstract fun <get-callableMap>(): kotlin.collections/Map<kotlin/String, kotlinx.rpc.descriptor/RpcCallable<#A>> // kotlinx.rpc.descriptor/RpcServiceDescriptor.callableMap.<get-callableMap>|<get-callableMap>(){}[0]
abstract val callables // kotlinx.rpc.descriptor/RpcServiceDescriptor.callables|{}callables[0]
abstract fun <get-callables>(): kotlin.collections/Map<kotlin/String, kotlinx.rpc.descriptor/RpcCallable<#A>> // kotlinx.rpc.descriptor/RpcServiceDescriptor.callables.<get-callables>|<get-callables>(){}[0]
abstract val fqName // kotlinx.rpc.descriptor/RpcServiceDescriptor.fqName|{}fqName[0]
abstract fun <get-fqName>(): kotlin/String // kotlinx.rpc.descriptor/RpcServiceDescriptor.fqName.<get-fqName>|<get-fqName>(){}[0]

Expand Down
2 changes: 1 addition & 1 deletion docs/pages/kotlinx-rpc/help-versions.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[
{"version":"0.10.0","url":"/kotlinx-rpc/0.10.0/","isCurrent":true}
{"version":"0.10.1","url":"/kotlinx-rpc/0.10.1/","isCurrent":true}
]
24 changes: 24 additions & 0 deletions docs/pages/kotlinx-rpc/topics/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,30 @@

This page contains all changes throughout releases of the library.

## 0.10.1
> Published 27 October 2025

**Full Changelog**: [0.10.0...0.10.1](https://github.com/Kotlin/kotlinx-rpc/compare/0.10.0...0.10.1)

#### Features 🎉 {id=Features_0_10_1}
* Kotlin 2.2.21 Support by [@Mr3zee](https://github.com/Mr3zee) in [#519](https://github.com/Kotlin/kotlinx-rpc/pull/519)
* Expose RpcServiceDescriptor.callables by [@rnett](https://github.com/rnett) in [#516](https://github.com/Kotlin/kotlinx-rpc/pull/516)
* Added watchosDeviceArm64 and watchosArm32 targets to kRPC by [@Mr3zee](https://github.com/Mr3zee) in [#513](https://github.com/Kotlin/kotlinx-rpc/pull/513)

#### Bug fixes 🐛 {id=Bug_fixes_0_10_1}
* Fix one more ClosedSendChannelException by [@Mr3zee](https://github.com/Mr3zee) in [#514](https://github.com/Kotlin/kotlinx-rpc/pull/514)
* Fix scope initialization on the kRPC Client by [@Mr3zee](https://github.com/Mr3zee) in [#505](https://github.com/Kotlin/kotlinx-rpc/pull/505)
* Fix wording for the `perCallBufferSize` docs by [@Mr3zee](https://github.com/Mr3zee) in [#500](https://github.com/Kotlin/kotlinx-rpc/pull/500)

#### Infra 🚧 {id=Infra_0_10_1}
* Added readme safeguard by [@Mr3zee](https://github.com/Mr3zee) in [#515](https://github.com/Kotlin/kotlinx-rpc/pull/515)
* Fixed kRPC compatibility tests by [@Mr3zee](https://github.com/Mr3zee) in [#518](https://github.com/Kotlin/kotlinx-rpc/pull/518)
* Update compiler tests infra by [@Mr3zee](https://github.com/Mr3zee) in [#510](https://github.com/Kotlin/kotlinx-rpc/pull/510)

### New Contributors {id=New_Contributors_0_10_1}
* [@rnett](https://github.com/rnett) made their first contribution in [#516](https://github.com/Kotlin/kotlinx-rpc/pull/516)


## 0.10.0
> Published 7 October 2025

Expand Down
2 changes: 1 addition & 1 deletion docs/pages/kotlinx-rpc/topics/versions.topic
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<list>
<li>2.0.0, 2.0.10, 2.0.20, 2.0.21</li>
<li>2.1.0, 2.1.10, 2.1.20, 2.1.21</li>
<li>2.2.0, 2.2.10, 2.2.20</li>
<li>2.2.0, 2.2.10, 2.2.20, 2.2.21</li>
</list>
<p>
Our code generation will support these versions (See more on <a anchor="code-generation-artifacts">code
Expand Down
4 changes: 2 additions & 2 deletions docs/pages/kotlinx-rpc/v.list
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@
<var name="host" value="https://kotlin.github.io"/>

<!-- Library versions -->
<var name="kotlinx-rpc-version" value="0.10.0"/>
<var name="kotlin-version" value="2.2.20"/>
<var name="kotlinx-rpc-version" value="0.10.1"/>
<var name="kotlin-version" value="2.2.21"/>
</vars>
2 changes: 1 addition & 1 deletion docs/pages/kotlinx-rpc/writerside.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
<images dir="images" web-path="images/"/>
<categories src="c.list"/>
<vars src="v.list"/>
<instance src="rpc.tree" version="0.10.0" web-path="/kotlinx-rpc/"/>
<instance src="rpc.tree" version="0.10.1" web-path="/kotlinx-rpc/"/>
</ihp>
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
* Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

@file:Suppress("LoggingSimilarMessage")

import kotlin.io.path.createDirectories
import kotlin.io.path.writeText

Expand Down Expand Up @@ -55,7 +57,7 @@ versionDirs.forEach { (dir, version) ->
""".trimIndent()
)

logger.lifecycle("Generating :tests:krpc-protocol-compatibility-tests:$dir")
logger.debug("Generating {}", globalRootDir.relativize(buildFile))
include(":tests:krpc-protocol-compatibility-tests:$dir")
}

Expand All @@ -68,7 +70,7 @@ val versionsConventionsFile: java.nio.file.Path = globalRootDir
.resolve("krpc_compat")
.resolve("versions.kt")

logger.lifecycle("Generating krpc_compat/versions.kt")
logger.debug("Generating {}", globalRootDir.relativize(versionsConventionsFile))
versionsConventionsFile.writeText(
"""
|/* THIS FILE IS AUTO-GENERATED, DO NOT EDIT! */
Expand Down
2 changes: 1 addition & 1 deletion krpc/krpc-client/api/krpc-client.klib.api
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
2 changes: 1 addition & 1 deletion krpc/krpc-core/api/krpc-core.klib.api
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ public fun serializeException(cause: Throwable): SerializedException {
val message = cause.message ?: "Unknown exception"
val stacktrace = cause.stackElements()
val serializedCause = cause.cause?.let { serializeException(it) }
val className = if (cause is CancellationException || cause is kotlin.coroutines.cancellation.CancellationException) {
val className = if (
cause is CancellationException || cause is kotlin.coroutines.cancellation.CancellationException
) {
CancellationException::class.rpcInternalTypeName ?: "kotlinx.coroutines.CancellationException"
} else {
cause::class.rpcInternalTypeName ?: ""
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
2 changes: 1 addition & 1 deletion krpc/krpc-ktor/krpc-ktor-core/api/krpc-ktor-core.klib.api
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
2 changes: 1 addition & 1 deletion krpc/krpc-logging/api/krpc-logging.klib.api
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
2 changes: 1 addition & 1 deletion krpc/krpc-server/api/krpc-server.klib.api
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Klib ABI Dump
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm64, watchosSimulatorArm64, watchosX64]
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, wasmWasi, watchosArm32, watchosArm64, watchosDeviceArm64, watchosSimulatorArm64, watchosX64]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,13 @@ internal class ServerStreamContext {
}

suspend fun cancelStream(message: KrpcCallMessage.StreamCancel) {
streams[message.callId]?.get(message.streamId)?.channel?.sendIgnoreClosed(StreamCancel(message.cause.deserialize()))
streams[message.callId]?.get(message.streamId)?.channel
?.sendIgnoreClosed(StreamCancel(message.cause.deserialize()))
}

suspend fun closeStream(message: KrpcCallMessage.StreamFinished) {
streams[message.callId]?.get(message.streamId)?.channel?.sendIgnoreClosed(StreamEnd)
streams[message.callId]?.get(message.streamId)?.channel
?.sendIgnoreClosed(StreamEnd)
}

private suspend fun <T> Channel<T>.sendIgnoreClosed(data: T) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,6 @@ class CancellationTest {
println("[testCancelServer] Second request finished")
clientFlowJob.join()
println("[testCancelServer] Client flow finished")

serverInstance().fence.complete(Unit)
serverFlowJob.join()
println("[testCancelServer] Server flow finished")

Expand Down
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ plugins {
id("conventions-repositories")
id("conventions-version-resolution")
id("conventions-develocity")
id("krpc-compat-tests")
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
}

Expand Down
4 changes: 2 additions & 2 deletions versions-root/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[versions]
# core library version
kotlinx-rpc = "0.10.0"
kotlinx-rpc = "0.10.1"

# kotlin
kotlin-lang = "2.2.20" # or env.KOTLIN_VERSION
kotlin-lang = "2.2.21" # or env.KOTLIN_VERSION
kotlin-compiler = "0.0.0" # default to kotlin-lang or env.KOTLIN_COMPILER_VERSION

# kotlin independent versions
Expand Down