#rpc #async #microservices #api #back-end #networking

igcp

provides ergonomic abstractions for network communication; communication backend of Canary

6 releases

0.1.6 Jan 25, 2022
0.1.2 Jan 12, 2022
0.0.6 Dec 29, 2021

#107 in #microservices


Used in 3 crates (via sia)

MIT license

68KB
1K SLoC

IGCP

IGCP is the communication backend of Canary. It provides a simple Channel type that represents a stream of objects, and a serializable std::io::Result.

async fn send(mut channel: Channel) -> Result<()> {
    channel.send("hello world!").await?;
    channel.send(42).await?;
    Ok(())
}

lib.rs:

IGCP | intergalactic communications protocol

IGCP is designed to abstract over streams or low-level communication protocols. IGCP should be as high-level as possible while keeping configurability and zero-cost to the wire. The main abstraction IGCP offers are channels, which represent a stream of objects that can be sent or received. At the moment, IGCP channels are not completely zero-cost.

Dependencies

~11–24MB
~354K SLoC