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
8 changes: 8 additions & 0 deletions docs/pages/kotlinx-rpc/topics/platforms.topic
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,14 @@
<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>grpc-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>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>
Expand Down
104 changes: 104 additions & 0 deletions gradle/artifacts/publishApplePublicationToBuildRepoRepository.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,110 @@ org.jetbrains.kotlinx:kotlinx-rpc-core-watchosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-core-watchosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-watchosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-watchosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iosarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iosarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iossimulatorarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iossimulatorarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iossimulatorarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iossimulatorarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-iosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-macosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-macosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-macosarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-macosarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-macosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-macosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-macosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-macosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvosarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvosarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvossimulatorarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvossimulatorarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvossimulatorarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvossimulatorarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-tvosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosarm32/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosarm32/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosarm32/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosarm32/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosdevicearm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosdevicearm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosdevicearm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosdevicearm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchossimulatorarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchossimulatorarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchossimulatorarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchossimulatorarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-watchosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iosarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iosarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iossimulatorarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iossimulatorarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iossimulatorarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iossimulatorarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-iosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-macosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-macosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-macosarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-macosarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-macosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-macosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-macosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-macosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvosarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvosarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvossimulatorarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvossimulatorarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvossimulatorarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvossimulatorarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-tvosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosarm32/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosarm32/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosarm32/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosarm32/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosdevicearm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosdevicearm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosdevicearm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosdevicearm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchossimulatorarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchossimulatorarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchossimulatorarm64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchossimulatorarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosx64/metadata.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-watchosx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-iosarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-iosarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-iosarm64/metadata.jar
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
org.jetbrains.kotlinx:kotlinx-rpc-core-js/.klib
org.jetbrains.kotlinx:kotlinx-rpc-core-js/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-js/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-js/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-js/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-js/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-js/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-js/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-js/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-js/.klib
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-js/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-js/sources.jar
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
org.jetbrains.kotlinx:kotlinx-rpc-core-jvm/.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-jvm/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-jvm/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-jvm/.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-jvm/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-jvm/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-jvm/.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-jvm/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-jvm/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-jvm/.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-jvm/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-jvm/sources.jar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ org.jetbrains.kotlinx:kotlinx-rpc-core/.jar
org.jetbrains.kotlinx:kotlinx-rpc-core/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-core/kotlin-tooling-metadata.json
org.jetbrains.kotlinx:kotlinx-rpc-core/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core/.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core/kotlin-tooling-metadata.json
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server/.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server/kotlin-tooling-metadata.json
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client/.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client/kotlin-tooling-metadata.json
Expand Down
12 changes: 12 additions & 0 deletions gradle/artifacts/publishLinuxPublicationToBuildRepoRepository.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,18 @@ org.jetbrains.kotlinx:kotlinx-rpc-core-linuxarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-linuxx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-core-linuxx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-linuxx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-linuxarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-linuxarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-linuxarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-linuxx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-linuxx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-linuxx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-linuxarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-linuxarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-linuxarm64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-linuxx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-linuxx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-linuxx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-linuxarm64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-linuxarm64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-linuxarm64/sources.jar
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
org.jetbrains.kotlinx:kotlinx-rpc-protobuf-plugin/all.jar
org.jetbrains.kotlinx:kotlinx-rpc-protobuf-plugin/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-protobuf-plugin/sources.jar
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
org.jetbrains.kotlinx:kotlinx-rpc-core-wasm-js/.klib
org.jetbrains.kotlinx:kotlinx-rpc-core-wasm-js/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-wasm-js/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-wasm-js/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-wasm-js/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-wasm-js/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-wasm-js/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-wasm-js/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-wasm-js/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-wasm-js/.klib
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-wasm-js/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-wasm-js/sources.jar
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
org.jetbrains.kotlinx:kotlinx-rpc-core-mingwx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-core-mingwx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-core-mingwx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-mingwx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-mingwx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-core-mingwx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-mingwx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-mingwx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-grpc-ktor-server-mingwx64/sources.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-mingwx64/.klib
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-mingwx64/javadoc.jar
org.jetbrains.kotlinx:kotlinx-rpc-krpc-client-mingwx64/sources.jar
Expand Down
4 changes: 4 additions & 0 deletions grpc/grpc-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ plugins {
}

kotlin {
compilerOptions {
freeCompilerArgs.add("-Xexpect-actual-classes")
}

sourceSets {
commonMain {
dependencies {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import kotlinx.rpc.RpcClient
import kotlinx.rpc.grpc.descriptor.GrpcClientDelegate
import kotlinx.rpc.grpc.descriptor.GrpcServiceDescriptor
import kotlinx.rpc.internal.utils.map.RpcInternalConcurrentHashMap
import kotlin.time.Duration

/**
* GrpcClient manages gRPC communication by providing implementation for making asynchronous RPC calls.
Expand All @@ -19,6 +20,20 @@ import kotlinx.rpc.internal.utils.map.RpcInternalConcurrentHashMap
public class GrpcClient internal constructor(private val channel: ManagedChannel) : RpcClient {
private val stubs = RpcInternalConcurrentHashMap<Long, GrpcClientDelegate>()

public fun shutdown() {
stubs.clear()
channel.shutdown()
}

public fun shutdownNow() {
stubs.clear()
channel.shutdownNow()
}

public suspend fun awaitTermination(duration: Duration) {
channel.awaitTermination(duration)
}

override suspend fun <T> call(call: RpcCall): T {
return call.delegate().call(call)
}
Expand All @@ -39,11 +54,11 @@ public class GrpcClient internal constructor(private val channel: ManagedChannel
* Constructor function for the [GrpcClient] class.
*/
public fun GrpcClient(
name: String,
hostname: String,
port: Int,
configure: ManagedChannelBuilder<*>.() -> Unit = {},
): GrpcClient {
val channel = ManagedChannelBuilder(name, port).apply(configure).buildChannel()
val channel = ManagedChannelBuilder(hostname, port).apply(configure).buildChannel()
return GrpcClient(channel)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

package kotlinx.rpc.grpc

import kotlinx.atomicfu.atomic
import kotlinx.rpc.RpcServer
import kotlinx.rpc.descriptor.serviceDescriptorOf
import kotlinx.rpc.grpc.annotations.Grpc
Expand Down Expand Up @@ -65,9 +66,13 @@ public class GrpcServer internal constructor(
return grpc.delegate.definitionFor(service)
}

private val buildLock = atomic(false)

internal fun build() {
internalServer = Server(serverBuilder)
isBuilt = true
if (buildLock.compareAndSet(expect = false, update = true)) {
internalServer = Server(serverBuilder)
isBuilt = true
}
}

override val isShutdown: Boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public interface ManagedChannel {
*/
public expect abstract class ManagedChannelBuilder<T : ManagedChannelBuilder<T>>

internal expect fun ManagedChannelBuilder(name: String, port: Int): ManagedChannelBuilder<*>
internal expect fun ManagedChannelBuilder(hostname: String, port: Int): ManagedChannelBuilder<*>
internal expect fun ManagedChannelBuilder(target: String): ManagedChannelBuilder<*>

internal expect fun ManagedChannelBuilder<*>.buildChannel(): ManagedChannel
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal actual fun ManagedChannelBuilder<*>.buildChannel(): ManagedChannel {
error("JS target is not supported in gRPC")
}

internal actual fun ManagedChannelBuilder(name: String, port: Int): ManagedChannelBuilder<*> {
internal actual fun ManagedChannelBuilder(hostname: String, port: Int): ManagedChannelBuilder<*> {
error("JS target is not supported in gRPC")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ internal actual fun ManagedChannelBuilder<*>.buildChannel(): ManagedChannel {
return build().toKotlin()
}

internal actual fun ManagedChannelBuilder(name: String, port: Int): ManagedChannelBuilder<*> {
return io.grpc.ManagedChannelBuilder.forAddress(name, port)
internal actual fun ManagedChannelBuilder(hostname: String, port: Int): ManagedChannelBuilder<*> {
return io.grpc.ManagedChannelBuilder.forAddress(hostname, port)
}

internal actual fun ManagedChannelBuilder(target: String): ManagedChannelBuilder<*> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal actual fun ManagedChannelBuilder<*>.buildChannel(): ManagedChannel {
error("Native target is not supported in gRPC")
}

internal actual fun ManagedChannelBuilder(name: String, port: Int): ManagedChannelBuilder<*> {
internal actual fun ManagedChannelBuilder(hostname: String, port: Int): ManagedChannelBuilder<*> {
error("Native target is not supported in gRPC")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal actual fun ManagedChannelBuilder<*>.buildChannel(): ManagedChannel {
error("WasmJS target is not supported in gRPC")
}

internal actual fun ManagedChannelBuilder(name: String, port: Int): ManagedChannelBuilder<*> {
internal actual fun ManagedChannelBuilder(hostname: String, port: Int): ManagedChannelBuilder<*> {
error("WasmJS target is not supported in gRPC")
}

Expand Down
Loading