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

#221 in Encoding

Download history 958/week @ 2024-08-16 1272/week @ 2024-08-23 1006/week @ 2024-08-30 1044/week @ 2024-09-06 735/week @ 2024-09-13 1302/week @ 2024-09-20 704/week @ 2024-09-27 743/week @ 2024-10-04 667/week @ 2024-10-11 1136/week @ 2024-10-18 965/week @ 2024-10-25 833/week @ 2024-11-01 1255/week @ 2024-11-08 1111/week @ 2024-11-15 1158/week @ 2024-11-22 717/week @ 2024-11-29

4,352 downloads per month
Used in 11 crates (8 directly)

MIT/Apache

35KB
582 lines

async-bincode

Crates.io Documentation

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
~112K SLoC