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§
Structs§
Constants§
- PROTOCOL_
VERSION_ HEADER - The string used in the gRPC HTTP header for the protocol version.
Traits§
- Request
Ext - Extension trait on tonic::Request.
- TryFrom
Bytes - Trait to convert some types from byte slices.