Kotlin / kotlinx-rpc

Add asynchronous RPC services to your multiplatform applications.
https://kotlin.github.io/kotlinx-rpc/
Apache License 2.0
512 stars 7 forks source link

`RPCServer` support for Kotlin Multiplatform #83

Open whyoleg opened 1 month ago

whyoleg commented 1 month ago

On current moment RPCServer is exposed in kotlinx-rpc-runtime for KMP, but it's not usable for KMP because there is no support for introspection of the methods on interfaces. AFAIU kRPC implementation (KRPCServer) uses reflection to find fields and methods which can handle requests. Would be nice to have this supported via compiler plugin, I believe I heard something about it in KotlinConf talk. Is there any timeline for this?

Use-case: RSocket supports making (and handling) requests both from client and server sides of connection. So f.e server can make some request to a client. And so for this RPCServer should be usable in KMP, on client side. Of course, another use-case is to run the server on K/N.

Mr3zee commented 1 month ago

Yep, this is in the nearest plans, the only roadblock right now is that we need to finish migration to compiler plugins from KSP (currently in work). After that KMP server will be next to implement. I can not give you a timeline right now, we are currently in the planning phase. Once it's done - I will update have estimations