Skip to main content

Crate server_rpc

Crate server_rpc 

Source
Expand description

§Note on protocol version

Whenever anything changes related to the interactions between client and server, including protocol encoding versions, gRPC data fields, expected behavior etc, that is not automatically backwards compatible, the protocol version is bumped.

Both the server and the client can be implemented so as to support multiple different protocol versions. This gives maximum flexibility to implement compatibility for both sides.

The server advertises the protocol versions it supports and the client picks one and sets it in the header of each subsequent request.

However, the server will only check the protocol version in cases where behavior can be different for different versions. This gives outdated or exotic clients an extra level of flexibility, as calls that have not changed since the latest supported protocol version might still work.

This makes the server maximally flexible and puts all the responsibility on the client. Our own client implementation bails out if it cannot speak any of the supported protocol versions the server supports.

§Protocol version changelog

  • 1: initial version

Re-exports§

pub extern crate tonic;
pub use client::ServerConnection;
pub use crate::protos::bark_server::ark_service_client::ArkServiceClient;

Modules§

admin
client
Client-side Ark server connector.
mailbox
protos

Structs§

ConvertError
WalletStatus

Constants§

PROTOCOL_VERSION_HEADER
The string used in the gRPC HTTP header for the protocol version.

Traits§

RequestExt
Extension trait on tonic::Request.
TryFromBytes
Trait to convert some types from byte slices.