#byte #zero-copy #extensible #source #owning #abstracting #type

anybytes

A small library abstracting over bytes owning types in an extensible way

5 releases (3 breaking)

new 0.10.0-alpha.1 Oct 21, 2024
0.9.0-alpha.1 Sep 27, 2024
0.1.2 Jul 9, 2024

#451 in Rust patterns

Download history 310/week @ 2024-07-08 20/week @ 2024-07-15 13/week @ 2024-07-22 15/week @ 2024-07-29 23/week @ 2024-08-05 26/week @ 2024-08-12 333/week @ 2024-08-26 314/week @ 2024-09-02 538/week @ 2024-09-16 521/week @ 2024-09-23 51/week @ 2024-09-30 15/week @ 2024-10-07 9/week @ 2024-10-14

616 downloads per month
Used in tribles

MIT license

32KB
941 lines

This Library is still pre-1.0.0 the API is therefore in heavy flux!

A small library for conveniently working with immutables bytes from different sources, providing zero-copy slicing and cloning.

Access itself is extremely cheap via no-op conversion to a &[u8].

The storage mechanism backing the bytes can be extended and is implemented for a variety of sources already, including other byte handling crates Bytes, mmap-ed files, Strings and Zerocopy types.

Comparison

Crate Active Extensible Zerocopy Integration mmap support kani verified
anybytes 🚧
bytes
ownedbytes
minibytes ❌[^1]

[^1]: No longer maintained as an individual crate.

Acknowledgements

This library started as a fork of the minibyte library in facebooks sapling scm.

Dependencies

~0.9–1.6MB
~27K SLoC