pub fn server<ClientInput, ClientOutput, ClientOutputError, GossipInput, GossipOutput, GossipOutputError, GossipTrigger, SeedNodeStream, Addr>(
client_inputs: ClientInput,
client_outputs: ClientOutput,
gossip_inputs: GossipInput,
gossip_outputs: GossipOutput,
gossip_trigger: GossipTrigger,
member_info: MemberData<Addr>,
seed_nodes: Vec<SeedNode<Addr>>,
seed_node_stream: SeedNodeStream,
) -> Dfir<'static>where
ClientInput: Stream<Item = (ClientRequest, Addr)> + Unpin + 'static,
ClientOutput: Sink<(ClientResponse, Addr), Error = ClientOutputError> + Unpin + 'static,
GossipInput: Stream<Item = (GossipMessage, Addr)> + Unpin + 'static,
GossipOutput: Sink<(GossipMessage, Addr), Error = GossipOutputError> + Unpin + 'static,
GossipTrigger: Stream<Item = ()> + Unpin + 'static,
SeedNodeStream: Stream<Item = Vec<SeedNode<Addr>>> + Unpin + 'static,
Addr: Address + DeserializeOwned + 'static,
ClientOutputError: Debug + 'static,
GossipOutputError: Debug + 'static,
Expand description
Creates a L0 key-value store server using Hydroflow.
§Arguments
– client_inputs
: The input stream of client requests for the client protocol.
– client_outputs
: The output sink of client responses for the client protocol.
– member_info
: The membership information of the server.
– seed_nodes
: A list of seed nodes that can be used to bootstrap the gossip cluster.