#serde #bytes


A reference-counted byte buffer

7 releases

0.3.5 May 15, 2022
0.3.4 Mar 12, 2022
0.3.3 Feb 13, 2022
0.3.2 Jan 26, 2022
0.1.0 Jan 24, 2022

#347 in Data structures

Download history 37/week @ 2022-12-01 100/week @ 2022-12-08 27/week @ 2022-12-15 63/week @ 2022-12-22 36/week @ 2022-12-29 36/week @ 2023-01-05 62/week @ 2023-01-12 199/week @ 2023-01-19 124/week @ 2023-01-26 221/week @ 2023-02-02 118/week @ 2023-02-09 303/week @ 2023-02-16 677/week @ 2023-02-23 514/week @ 2023-03-02 368/week @ 2023-03-09 398/week @ 2023-03-16

2,152 downloads per month
Used in 9 crates (3 directly)


874 lines


arc-bytes forbids unsafe code arc-bytes is considered alpha crate version Live Build Status HTML Coverage Report for main branch Documentation for main branch

A reference-counted byte buffer.

ArcBytes is a type that is useful when parsing a buffer of bytes and breaking it into smaller pieces without extra allocations or extending the lifetime of the underlying buffer. This is done with no unsafe code by leveraging std::sync::Arc. When the final reference of the buffer goes away, the underlying bytes will be released.

This type also implements std::io::Read and std::iter::Iterator for easier integration with existing code.

With the feature flag serde enabled, serde::Serialize/serde::Deserialize are implemented in such a way that ensures the bytes are written optimally and not as a sequence of u8s. This is almost identical to the approach that serde_bytes utilizes, except ArcBytes uses a single type and introduces the use of Arc.

Open-source Licenses

This project, like all projects from Khonsu Labs, are open-source. This repository is available under the MIT License or the Apache License 2.0.

To learn more about contributing, please see CONTRIBUTING.md.


~31K SLoC