<div align="center">
<img src="./logo.png" alt="Bytesbuf Io Logo" width="96">
# Bytesbuf Io
[](https://crates.io/crates/bytesbuf_io)
[](https://docs.rs/bytesbuf_io)
[](https://crates.io/crates/bytesbuf_io)
[](https://github.com/microsoft/oxidizer/actions/workflows/main.yml)
[](https://codecov.io/gh/microsoft/oxidizer)
[](../../LICENSE)
<a href="../.."><img src="../../logo.svg" alt="This crate was developed as part of the Oxidizer project" width="20"></a>
</div>
Asynchronous I/O abstractions expressed via [`bytesbuf`][__link0] types.
These types model byte sources that can be read from ([`Read`][__link1] trait) and byte sinks that can be
written to ([`Write`][__link2] trait). All operations use byte sequences represented by types from
[`bytesbuf`][__link3] instead of raw byte slices, enabling the level of flexibility required for
implementing and using high-performance I/O endpoints that consume or produce byte streams.
All operations are asynchronous and take ownership of the data/buffers passed to them,
enabling efficient implementation of high-performance I/O endpoints with zero-copy semantics.
The `futures-stream` feature enables integration with the `futures` crate, providing
an adapter that exposes a [`Read`][__link4] implementation as a `futures::Stream` of byte sequences.
The `test-util` feature enables additional utilities for testing implementations of
types that produce or consume streams of bytes. These are in the `testing` module.
<hr/>
<sub>
This crate was developed as part of <a href="../..">The Oxidizer Project</a>. Browse this crate's <a href="https://github.com/microsoft/oxidizer/tree/main/crates/bytesbuf_io">source code</a>.
</sub>
[__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG8wC2qKB5vPMG5c8vZ8ulsvSGwSlXV9Pnjr5GyAAXY8thjNKYWSBgmtieXRlc2J1Zl9pb2UwLjIuMA
[__link0]: https://docs.io/bytesbuf
[__link1]: https://docs.rs/bytesbuf_io/0.2.0/bytesbuf_io/?search=Read
[__link2]: https://docs.rs/bytesbuf_io/0.2.0/bytesbuf_io/?search=Write
[__link3]: https://docs.io/bytesbuf
[__link4]: https://docs.rs/bytesbuf_io/0.2.0/bytesbuf_io/?search=Read