reactive-messaging

Provides Stream-based reactive client/server communications focused on high performance -- through sockets, shared mem IPCs and other goodies -- async-powered by Tokio.

The distinct features of this library are: - a through protocol modeling, with the help of Rust's powerful enums; - ease of logic decoupling by using reactive Streams for the client / server logic.

Taste it

Take a look at the ping-pong game in example/, which shows some nice patterns on how to use this library: - How the ping-pong game logic is shared among the client and server; - How the protocol is modeled; - How to work with server-side sessions; - How decoupled and testable those pieces are; - How straight-forward it is to create flexible server & client applications once the processors are complete.

pre-alpha status

Research & core developments are just done: - The main network loop for both client & server is complete & fully optimized; - A nice message & network events API eases the modeling of elaborated protocols, with a fully working example/; - The most performant reactive library & channels has been picked up, as determined by benches/; - Only textual socket protocols are supported by now -- binary & shared mem IPCs to be added later; - The API is not complete -- only "responsive" communications for Streams that generate non-fallible & non-future elements are supported by now.