diff --git a/docs/pages/kotlinx-rpc/topics/platforms.topic b/docs/pages/kotlinx-rpc/topics/platforms.topic
index 9b6cd14c8..6926037bd 100644
--- a/docs/pages/kotlinx-rpc/topics/platforms.topic
+++ b/docs/pages/kotlinx-rpc/topics/platforms.topic
@@ -89,7 +89,7 @@
krpc-client |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
@@ -97,7 +97,7 @@
krpc-core |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
@@ -105,7 +105,7 @@
krpc-logging |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
@@ -113,7 +113,7 @@
krpc-server |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
@@ -121,7 +121,7 @@
krpc-test |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
@@ -153,7 +153,7 @@
krpc-serialization-cbor |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
@@ -161,7 +161,7 @@
krpc-serialization-core |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
@@ -169,7 +169,7 @@
krpc-serialization-json |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
@@ -177,7 +177,7 @@
krpc-serialization-protobuf |
jvm |
browsernode |
-wasmJsbrowsernode |
+wasmJsbrowsernode wasmWasinode |
appleiosiosArm64iosSimulatorArm64iosX64 macosmacosArm64macosX64 watchoswatchosArm64watchosSimulatorArm64watchosX64 tvostvosArm64tvosSimulatorArm64tvosX64 linuxlinuxArm64linuxX64 windowsmingwX64 |
diff --git a/krpc/gradle.properties b/krpc/gradle.properties
index babad0fbe..2aec64044 100644
--- a/krpc/gradle.properties
+++ b/krpc/gradle.properties
@@ -3,6 +3,5 @@
#
# https://github.com/oshai/kotlin-logging/issues/433
-kotlinx.rpc.exclude.wasmWasi=true
kotlinx.rpc.exclude.watchosArm32=true
kotlinx.rpc.exclude.watchosDeviceArm64=true
diff --git a/krpc/krpc-core/src/wasmJsMain/kotlin/kotlinx/rpc/krpc/internal/ExceptionUtils.wasm.kt b/krpc/krpc-core/src/wasmJsMain/kotlin/kotlinx/rpc/krpc/internal/ExceptionUtils.wasm.kt
index 8acc01ea0..030017bfa 100644
--- a/krpc/krpc-core/src/wasmJsMain/kotlin/kotlinx/rpc/krpc/internal/ExceptionUtils.wasm.kt
+++ b/krpc/krpc-core/src/wasmJsMain/kotlin/kotlinx/rpc/krpc/internal/ExceptionUtils.wasm.kt
@@ -6,8 +6,6 @@
package kotlinx.rpc.krpc.internal
-import kotlinx.rpc.internal.utils.InternalRpcApi
-
internal actual class DeserializedException actual constructor(
private val toStringMessage: String,
actual override val message: String,
diff --git a/krpc/krpc-core/src/wasmWasiMain/kotlin/kotlinx/rpc/krpc/internal/ExceptionUtils.wasmWasi.kt b/krpc/krpc-core/src/wasmWasiMain/kotlin/kotlinx/rpc/krpc/internal/ExceptionUtils.wasmWasi.kt
new file mode 100644
index 000000000..f8d294438
--- /dev/null
+++ b/krpc/krpc-core/src/wasmWasiMain/kotlin/kotlinx/rpc/krpc/internal/ExceptionUtils.wasmWasi.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package kotlinx.rpc.krpc.internal
+
+internal actual class DeserializedException actual constructor(
+ private val toStringMessage: String,
+ actual override val message: String,
+ stacktrace: List,
+ cause: SerializedException?,
+ className: String
+) : Throwable() {
+
+ override val cause: Throwable? = cause?.deserialize()
+
+ override fun toString(): String = toStringMessage
+}
+
+internal actual fun Throwable.stackElements(): List = emptyList()
+
+internal actual fun SerializedException.deserializeUnsafe(): Throwable {
+ return nonJvmManualCancellationExceptionDeserialize()
+ ?: DeserializedException(toStringMessage, message, stacktrace, cause, className)
+}
diff --git a/krpc/krpc-core/src/wasmWasiTest/kotlin/kotlinx/rpc/krpc/KrpcReceiveHandlerTest.wasmWasi.kt b/krpc/krpc-core/src/wasmWasiTest/kotlin/kotlinx/rpc/krpc/KrpcReceiveHandlerTest.wasmWasi.kt
new file mode 100644
index 000000000..8b39cd68f
--- /dev/null
+++ b/krpc/krpc-core/src/wasmWasiTest/kotlin/kotlinx/rpc/krpc/KrpcReceiveHandlerTest.wasmWasi.kt
@@ -0,0 +1,8 @@
+/*
+ * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package kotlinx.rpc.krpc
+
+internal actual val stressIterations: Int = 3000
+internal actual val stressBufferSize: Int = 1500
diff --git a/krpc/krpc-ktor/gradle.properties b/krpc/krpc-ktor/gradle.properties
new file mode 100644
index 000000000..b68c20f8d
--- /dev/null
+++ b/krpc/krpc-ktor/gradle.properties
@@ -0,0 +1,5 @@
+#
+# Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
+#
+
+kotlinx.rpc.exclude.wasmWasi=true
diff --git a/krpc/krpc-test/src/wasmWasiMain/kotlin/kotlinx/rpc/krpc/test/KrpcTransportTestBase.wasmWasi.kt b/krpc/krpc-test/src/wasmWasiMain/kotlin/kotlinx/rpc/krpc/test/KrpcTransportTestBase.wasmWasi.kt
new file mode 100644
index 000000000..debf06d0e
--- /dev/null
+++ b/krpc/krpc-test/src/wasmWasiMain/kotlin/kotlinx/rpc/krpc/test/KrpcTransportTestBase.wasmWasi.kt
@@ -0,0 +1,7 @@
+/*
+ * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package kotlinx.rpc.krpc.test
+
+internal actual val isJs: Boolean = true
diff --git a/krpc/krpc-test/src/wasmWasiTest/kotlin/kotlinx/rpc/krpc/test/TransportTest.wasmWasi.kt b/krpc/krpc-test/src/wasmWasiTest/kotlin/kotlinx/rpc/krpc/test/TransportTest.wasmWasi.kt
new file mode 100644
index 000000000..483c79d1e
--- /dev/null
+++ b/krpc/krpc-test/src/wasmWasiTest/kotlin/kotlinx/rpc/krpc/test/TransportTest.wasmWasi.kt
@@ -0,0 +1,7 @@
+/*
+ * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package kotlinx.rpc.krpc.test
+
+internal actual val testIterations: Int = 100
diff --git a/versions-root/libs.versions.toml b/versions-root/libs.versions.toml
index 28244f478..0f12a7ab3 100644
--- a/versions-root/libs.versions.toml
+++ b/versions-root/libs.versions.toml
@@ -10,7 +10,7 @@ kotlin-compiler = "0.0.0" # default to kotlin-lang or env.KOTLIN_COMPILER_VERSIO
detekt-analyzer = "1.23.6"
coroutines = "1.10.2"
ktor = "3.3.0"
-kotlin-logging = "7.0.7"
+kotlin-logging = "7.0.13"
slf4j = "2.0.17"
logback = "1.3.14"
gradle-plugin-publish = "1.3.1"