27 releases
0.7.2 | Nov 11, 2023 |
---|---|
0.7.1 | Apr 30, 2023 |
0.7.0 | May 8, 2022 |
0.6.1 | Feb 25, 2021 |
0.4.5 | Jul 9, 2018 |
#208 in Encoding
4,215 downloads per month
Used in 11 crates
(8 directly)
35KB
582 lines
async-bincode
Asynchronous access to a bincode-encoded item stream.
This crate enables you to asynchronously read from a bincode-encoded stream, or write
bincoded-encoded values. bincode
does not support this natively, as it cannot easily resume
from stream errors while encoding or decoding.
async-bincode
works around that on the receive side by buffering received bytes until a full
element's worth of data has been received, and only then calling into bincode. To make this
work, it relies on the sender to prefix each encoded element with its encoded size.
On the write side, async-bincode
buffers the serialized values, and asynchronously sends the
resulting bytestream. Important: Only one element at a time is written to the output writer.
It is recommended to use a BufWriter in front of the output to batch write operations to the
underlying writer. The marker trait AsyncDestination
can be used to automatically add the
length prefix required by an async-bincode
receiver.
Dependencies
~3–11MB
~110K SLoC