Packet Stream

Documentation Build Status

An implementation of the packet-stream protocol used by Secure Scuttlebutt.

```rust use futures::prelude::{SinkExt, StreamExt}; use packetstream::*;

let p = Packet { isstream: IsStream::Yes, isend: IsEnd::No, body_type: BodyType::Binary, id: 12345, body: vec![1,2,3,4,5] };

let (writer, reader) = asyncringbuffer::ringbuffer(64);

let mut sink = PacketSink::new(writer); let mut stream = PacketStream::new(reader);

async { sink.send(p).await; let r = stream.next().await.unwrap().unwrap(); asserteq!(&r.body, &[1,2,3,4,5]); asserteq!(r.id, 12345); }; ```