All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.caesarealabs.rpc4k.runtime.api.RpcClient.kt Maven / Gradle / Ivy

package com.caesarealabs.rpc4k.runtime.api

import kotlinx.serialization.KSerializer

/**
 * Generic interface for anything that sends information across the network.
 * Examples: HTTP Client, HTTP Server, WebSocket client/server.
 */
public interface RpcClient {
    /**
     * Sends something across the network.
     * The transmitter should use the specified [format] with the specified [serializers] to serialize the arguments of [rpc].
     * In the future we could allow [RpcClient]s to have custom logic when it comes to how exactly to serialize the [rpc].
     *
     * @return The response body's bytes.
     */
    public suspend fun send(rpc: Rpc, format: SerializationFormat, serializers: List>): ByteArray
    public val events: EventClient
}







© 2015 - 2024 Weber Informatics LLC | Privacy Policy