Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
ef99334
KRPC-209 kRPC: Implement backwards compatible backpressure
Mr3zee Aug 27, 2025
2d5b2c7
Update platforms table and ABI dump
Mr3zee Sep 2, 2025
f4908ff
Added stress tests
Mr3zee Sep 2, 2025
e713b37
Added lincheck tests template
Mr3zee Sep 3, 2025
aba3699
Fixed cancellation tests
Mr3zee Sep 4, 2025
1a3d2bf
Added backwards compatibility tests
Mr3zee Sep 4, 2025
92d67d2
Deleted old compat tests, made api dumps unversioned
Mr3zee Sep 4, 2025
af50273
Updated Api dump for 0.10.0
Mr3zee Sep 4, 2025
ab7bd83
abiDump
Mr3zee Sep 4, 2025
260ab7b
Fix detekt
Mr3zee Sep 4, 2025
f7b1ade
Fix regression
Mr3zee Sep 4, 2025
a687b21
Kover updates
Mr3zee Sep 5, 2025
f1b58e5
Added missing kDoc
Mr3zee Sep 5, 2025
5b44363
Fixed jvmTest for native only build
Mr3zee Sep 5, 2025
6210ad4
Some tests updates
Mr3zee Sep 5, 2025
7c54fee
Added perCallBufferSize validation
Mr3zee Sep 5, 2025
8523fb3
Added BackPressure tests and fixed client side streaming
Mr3zee Sep 5, 2025
b33c671
Extended timeouts
Mr3zee Sep 5, 2025
9a7022b
Fix test
Mr3zee Sep 10, 2025
bbb7d46
Updated tests to include proper coroutines debug management
Mr3zee Sep 15, 2025
6f01c0c
Small optimization for handlers with infinite timeout
Mr3zee Sep 15, 2025
d22358d
Added better debug logs, removed multiple client streams from several…
Mr3zee Sep 15, 2025
5736984
Increase stress test timeout
Mr3zee Sep 15, 2025
96be806
Fix logs for BackPressure test
Mr3zee Sep 15, 2025
411f6fb
Fix "Channel was closed" exceptions
Mr3zee Sep 15, 2025
a9d7b63
Increase timeout for RPC_should... test
Mr3zee Sep 15, 2025
db65a50
Made more rigorous wait counter for tests
Mr3zee Sep 16, 2025
db2ba73
More timeout for js tests and logging for stressActing
Mr3zee Sep 16, 2025
4242ead
Added stress test filter
Mr3zee Sep 16, 2025
6bce3db
More timeout for stressActing test
Mr3zee Sep 16, 2025
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
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ plugins {
alias(libs.plugins.serialization) apply false
alias(libs.plugins.kotlinx.rpc) apply false
alias(libs.plugins.atomicfu) apply false
alias(libs.plugins.conventions.kover)
alias(libs.plugins.conventions.root)
}

Expand Down
4 changes: 2 additions & 2 deletions detekt/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ empty-blocks:
EmptyForBlock:
active: true
EmptyFunctionBlock:
active: true
active: false
ignoreOverridden: false
EmptyIfBlock:
active: true
Expand Down Expand Up @@ -288,7 +288,7 @@ exceptions:
ThrowingNewInstanceOfSameException:
active: true
TooGenericExceptionCaught:
active: true
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
exceptionNames:
- 'ArrayIndexOutOfBoundsException'
Expand Down
26 changes: 13 additions & 13 deletions docs/pages/kotlinx-rpc/topics/platforms.topic
Original file line number Diff line number Diff line change
Expand Up @@ -73,47 +73,47 @@
<td>core</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li><li>wasmWasi<list><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li><li>wasmWasi<list><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm32</li><li>watchosArm64</li><li>watchosDeviceArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>utils</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li><li>wasmWasi<list><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li><li>wasmWasi<list><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm32</li><li>watchosArm64</li><li>watchosDeviceArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-client</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-core</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-logging</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-server</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

Expand All @@ -129,55 +129,55 @@
<td>krpc-ktor-client</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-ktor-core</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-ktor-server</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-serialization-cbor</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-serialization-core</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-serialization-json</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

<tr>
<td>krpc-serialization-protobuf</td>
<td>jvm</td>
<td><list><li>browser</li><li>node</li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>d8</li><li>node</li></list></li></list></td>
<td><list><li>wasmJs<list><li>browser</li><li>node</li></list></li></list></td>
<td><list><li>apple<list><li>ios<list><li>iosArm64</li><li>iosSimulatorArm64</li><li>iosX64</li></list></li><li>macos<list><li>macosArm64</li><li>macosX64</li></list></li><li>watchos<list><li>watchosArm64</li><li>watchosSimulatorArm64</li><li>watchosX64</li></list></li><li>tvos<list><li>tvosArm64</li><li>tvosSimulatorArm64</li><li>tvosX64</li></list></li></list></li><li>linux<list><li>linuxArm64</li><li>linuxX64</li></list></li><li>windows<list><li>mingwX64</li></list></li></list></td>
</tr>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,3 @@ afterEvaluate {
})
}
}

apply(plugin = "org.jetbrains.kotlinx.kover")

val thisProject = project

rootProject.configurations.matching { it.name == "kover" }.all {
rootProject.dependencies.add("kover", thisProject)
}
1 change: 1 addition & 0 deletions gradle-conventions/src/main/kotlin/util/apiValidation.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation
private val excludedProjects = setOf(
"krpc-test",
"krpc-compatibility-tests",
"krpc-protocol-compatibility-tests",
"compiler-plugin-tests",
)

Expand Down
16 changes: 16 additions & 0 deletions gradle-conventions/src/main/kotlin/util/kover.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

package util

import org.gradle.api.Project

@Suppress("unused")
fun Project.applyKover() {
plugins.apply("org.jetbrains.kotlinx.kover")

rootProject.configurations.matching { it.name == "kover" }.all {
rootProject.dependencies.add("kover", this@applyKover)
}
}
3 changes: 2 additions & 1 deletion gradle-conventions/src/main/kotlin/util/targets/wasm.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ fun KmpConfig.configureWasm() {
browser()
nodejs()
if (wasmJsD8) {
d8()
// this platform needs some care KRPC-210
// d8()
}

binaries.library()
Expand Down
33 changes: 33 additions & 0 deletions kotlin-js-store/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions kotlin-js-store/wasm/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading