docs.rs failed to build simple-stream-0.10.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
simple-stream-0.10.0
simple-stream
simple-stream is a buffered stream wrapper over anything that implements
std::io::Read
and std::io::Write
. It works by buffering all reads and
checking the buffers against a FrameBuilder
, which will inform the stream
that a complete Frame
has been received, and removes it out of the buffer.
The crate comes with a few types of Framing options, and provides both a plain text and encrypted stream via rust-openssl.
Example Usage
extern crate simple_stream as ss;
use std::net::TcpStream;
use ss::frame::{SimpleFrame, SimpleFrameBuilder};
use ss::{Plain, NonBlocking};
fn main() {
// Create some non-blocking type that implements Read + Write
let stream = TcpStream::connect("rust-lang.org:80").unwrap();
stream.set_nonblocking(true).unwrap();
// Create a Plain Text stream that sends and receives messages in the
// `SimpleFrame` format.
let mut plain_stream = Plain::<TcpStream, SimpleFrameBuilder>::new(stream);
// Perform a non-blocking write
let buf = vec!(1, 2, 3, 4);
let frame = SimpleFrame::new(&buf[..]);
match plain_stream.nb_send(&frame) {
Ok(_) => { }
Err(e) => println!("Error during write: {}", e)
};
// Perform a non-blocking read
match plain_stream.nb_recv() {
Ok(frames) => {
for _ in frames {
// Do stuff with received frames
}
}
Err(e) => println!("Error during read: {}", e)
};
}
Author
Nathan Sizemore, nathanrsizemore@gmail.com
License
simple-stream is available under the MPL-2.0 license. See the LICENSE file for more info.