Crate igcp

source · []
Expand description

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.

Re-exports

pub use err::Error;
pub use err::Result;

Modules

contains encrypted stream

contains custom error types and result

contains the serialization methods for channels and formats

Type juggling. Do not enter unless you want a headache, or if you want to understand how this works. I won’t bother documenting this.

Macros

construct an io error rapidly

used for internals. pipe!(tx i32, rx u32) -> TypeIter<Tx<i32>, TypeIter<Rx<u32>>>

Declares pipelines. Pipelines are used to guarantee that communication is correct at compile-time.

shorten rx calls

shorten tx calls

Enums

BareChannel is a non-generic version of Channel used to make conversion between channels types easier

Channel abstracts network communications as object streams.

Traits

wrapper trait to allow any type that implements Read, Write, Send, Sync and 'static to use Channel

Type Definitions

channel that allows input with any serialization format. supports bincode, json, bson and postcard and deserializes in that order

read format that allows input with any serialization format. supports bincode, json, bson and postcard and deserializes in that order