slipspeed 2.0.0

The fastest SLIP codec for Rust
Documentation
#[cfg(not(feature = "tokio-codec"))]
fn main() {
    eprintln!(
        "Enable the `tokio-codec` feature to build this example:\n    cargo run --example tokio_codec --features tokio-codec"
    );
}

#[cfg(feature = "tokio-codec")]
#[tokio::main(flavor = "current_thread")]
async fn main() -> slipspeed::Result<()> {
    use futures::{SinkExt, StreamExt};
    use slipspeed::tokio_codec::SlipCodec;
    use tokio::io::duplex;
    use tokio_util::codec::Framed;

    let (client, server) = duplex(1024);
    let mut writer = Framed::new(client, SlipCodec::new());
    let mut reader = Framed::new(server, SlipCodec::new());

    writer.send(b"hello".to_vec()).await?;
    writer.send(b"world".to_vec()).await?;
    writer.flush().await?;

    while let Some(frame) = reader.next().await.transpose()? {
        println!("Received frame: {:?}", String::from_utf8_lossy(&frame));
    }

    Ok(())
}