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§

async_snow
contains encrypted stream
err
contains custom error types and result
serialization
contains the serialization methods for channels and formats
type_iter
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§

err
construct an io error rapidly
pipe
used for internals. pipe!(tx i32, rx u32) -> TypeIter<Tx<i32>, TypeIter<Rx<u32>>>
pipeline
Declares pipelines. Pipelines are used to guarantee that communication is correct at compile-time.
rx
shorten rx calls
tx
shorten tx calls

Enums§

BareChannel
BareChannel is a non-generic version of Channel used to make conversion between channels types easier
Channel
Channel abstracts network communications as object streams.

Traits§

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

Type Aliases§

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