Alexander Sysoev
02/10/2025, 3:17 PMAlexander Sysoev
02/13/2025, 1:05 PM0.5.1
!
This release supports Kotlin 2.1.10rocketraman
02/14/2025, 9:36 PMKrpcTransport.receive
?daveford
02/19/2025, 1:10 AMTardisfan121
02/19/2025, 2:53 PMKotlin: [Internal Error] java.lang.NoClassDefFoundError: org/jetbrains/kotlin/com/intellij/psi/PsiElement
at kotlinx.rpc.codegen.checkers.diagnostics.FirRpcStrictModeDiagnostics.<init>(FirRpcDiagnostics.kt:48)
at kotlinx.rpc.codegen.FirCheckersContext.<init>(FirRpcAdditionalCheckers.kt:48)
at kotlinx.rpc.codegen.FirRpcAdditionalCheckers.<init>(FirRpcAdditionalCheckers.kt:31)
at kotlinx.rpc.codegen.FirRpcExtensionRegistrar.configurePlugin$lambda$1(FirRpcExtensionRegistrar.kt:32)
at org.jetbrains.kotlin.fir.extensions.FirExtensionService.registerExtensions(FirExtensionService.kt:43)
at org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarKt.registerExtensions(FirExtensionRegistrar.kt:285)
at org.jetbrains.kotlin.fir.session.FirSessionConfigurator.configure(FirSessionConfigurator.kt:53)
at org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory.createModuleBasedSession(FirAbstractSessionFactory.kt:124)
at ..... 58 more lines
Caused by: java.lang.ClassNotFoundException: org.jetbrains.kotlin.com.intellij.psi.PsiElement
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 58 more
Since the Gradle compilation works I'm going to split my rpc code into a separate module and use it as a library instead of from source. Any tips or is this a known issue? I can DM my project if needed (6mb zipped). I've tried combinations of kotlin 2.1.10 / 2.0.0 , rpc 0.5.0 + 0.4.0, and the FIR IDE Plugin 0.0.2 and (unreleased) 0.1.0 (built locally)Laxystem
02/19/2025, 6:23 PMhellman
03/07/2025, 12:24 PMJoost Klitsie
03/19/2025, 9:42 AMwebSocketSession.isActive
returns false, but is this the wanted behavior? I was kind of expecting to make 1 KtorRpcClient and reuse that instance, and not having to bother with recreating it. Or am I holding it wrong?rocketraman
03/29/2025, 3:38 PMAlexander Sysoev
04/04/2025, 1:30 PM0.6.0
!
• Non-suspending functions for server-sedi streaming in kRPC
• Kotlin 2.1.20
• Other bug fixes
Update now! 👇
https://github.com/Kotlin/kotlinx-rpc/releases/tag/0.6.0Alexander Sysoev
04/11/2025, 9:35 AM0.6.1
bugfix release is out: https://github.com/Kotlin/kotlinx-rpc/releases/tag/0.6.1Dirk
04/11/2025, 12:39 PMDragos Rachieru
04/11/2025, 5:35 PMThe setup has only been tested on Kotlin/JVM projects.
Does this mean that gRPC implementation works for multiplatform? For now, I just want the code to compile on KMP and generate the Protos, is this possible?
Alexander Sysoev
04/18/2025, 8:30 AM0.6.2
bugfix release is out: https://github.com/Kotlin/kotlinx-rpc/releases/tag/0.6.2Alexander af Trolle
04/19/2025, 2:22 PMS.
05/06/2025, 12:45 PMYakiv Yereskovskyi
05/08/2025, 1:17 PM0.7.0
release. Would you happen to have an approximate timeline for that release? Our team has been eagerly awaiting the fix for over six months now 😢Alexander Sysoev
05/14/2025, 11:34 AM0.7.0
release is out: https://github.com/Kotlin/kotlinx-rpc/releases/tag/0.7.0
It's main purpose is to advance the deprecation cycle for old service APIs. Major changes to lifetimes and complete deprecation of old service APIs coming in 0.8.0
Dirk
06/13/2025, 7:34 AMAlexander af Trolle
06/29/2025, 9:14 PMAlexander Sysoev
07/02/2025, 12:45 AM0.8.0
This release brings a lot of changes, including breaking changes:
- Kotlin 2.2.0 Update
- Decoupling of kotlinx.serialization
from the core functionality
- Simplifying 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.
We added three new documentation sections:
- API Reference
- Platform compatibility overview
- Changelog in the web
Full release notes:
https://github.com/Kotlin/kotlinx-rpc/releases/tag/0.8.0Dirk
07/03/2025, 8:44 AMDirk
07/03/2025, 8:52 AMAlexander af Trolle
07/08/2025, 8:13 PMAlexander Sysoev
07/09/2025, 1:29 PM0.8.1
bugfix release is out: https://github.com/Kotlin/kotlinx-rpc/releases/tag/0.8.1
• Compiler fixes
• Critical KrpcClient bug is fixedDirk
07/11/2025, 8:07 AMDirk
07/11/2025, 8:14 AMYakiv Yereskovskyi
07/11/2025, 12:49 PM0.4.0
to 0.8.1
and it looks like new version doesn’t serialize default arguments anymore, I’m just getting NPE:
Caused by: java.lang.NullPointerException: Parameter specified as non-null is null
...
at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:259)
at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80)
at kotlinx.rpc.krpc.internal.CallableParametersSerializer.serialize(SerializationUtils.kt:127)
at kotlinx.rpc.krpc.internal.CallableParametersSerializer.serialize(SerializationUtils.kt:100)
at kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue(StreamingJsonEncoder.kt:259)
at kotlinx.serialization.json.internal.JsonStreamsKt.encodeByWriter(JsonStreams.kt:99)
Could you help to understand if this is regression or I did something wrong?Vivek Modi
07/14/2025, 8:41 PMAlexander Sysoev
07/18/2025, 10:09 AM0.9.1
release is out: https://github.com/Kotlin/kotlinx-rpc/releases/tag/0.9.1
It's a bug fix release with a minor version bump because of a breaking change fix
We fixed a problem in 0.8.1
with unresolved Apple and Windows artifacts.
The same problem affected initial 0.9.0
release, that's why we've published 0.9.1
and skipped 0.9.0
.