During a dependency review we noticed that the bytes crate includes various development scripts. These development scripts shouldn't be there as they might, at some point become problematic. As of now they prevent any downstream user from enabling the `[bans.build.interpreted]` option of cargo deny. I opted for using an explicit include list instead of an exclude list to prevent these files from being included in the published packages to make sure that everything that's included is an conscious choice.
Bytes
A utility library for working with bytes.
Usage
To use bytes, first add this to your Cargo.toml:
[dependencies]
bytes = "1"
Next, add this to your crate:
use bytes::{Bytes, BytesMut, Buf, BufMut};
no_std support
To use bytes with no_std environment, disable the (enabled by default) std feature.
[dependencies]
bytes = { version = "1", default-features = false }
To use bytes with no_std environment without atomic CAS, such as thumbv6m, you also need to enable
the extra-platforms feature. See the documentation for the portable-atomic
crate for more information.
The MSRV when extra-platforms feature is enabled depends on the MSRV of portable-atomic.
Serde support
Serde support is optional and disabled by default. To enable use the feature serde.
[dependencies]
bytes = { version = "1", features = ["serde"] }
The MSRV when serde feature is enabled depends on the MSRV of serde.
Building documentation
When building the bytes documentation the docsrs option should be used, otherwise
feature gates will not be shown. This requires a nightly toolchain:
RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in bytes by you, shall be licensed as MIT, without any additional
terms or conditions.