NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2774 most downloaded on crates.io
Derive macro for binrw
Last release 2 months ago
23 Jul 2026
Ships fairly regularly
a new release about every 4 months
Rarely documented
notes for 6 of 29 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
30 releases · first in 2021
One column per quarter.
binrw is now future-compatible with pub_use_of_private_extern_crate. ( #361 . Thanks, @jakobhellermann !)
The rarely-used variadic signature for #[binrw::parser] and #[binrw::writer] helper functions now requires a field name (i.e. fn foo(...) must now be
#[binrw::parser] and #[binrw::writer] helper functions now requires a field name (i.e. fn foo(...) must now be fn foo(_: ...) so that the Rust compiler team can do good things. (#342)The generic parameter lists for binrw::helpers functions have been reordered to put most-frequently-used parameters first.
binrw::helpers functions have been reordered to put most-frequently-used parameters first.binrw::helpers functions to support borrowed arguments.magic will now return an Io(UnexpectedEof) error when all attempts to read magic result in an UnexpectedEof. Previously, this would return NoVariantMatch. (#324, #325. Thanks, @plaflamme!)PosValue now includes implementations for Default and BinWrite. The BinWrite implementation simply treats PosValue as a wrapper and writes the stored value in place; the pos field is ignored. Use the seek_before and (optionally) restore_position directives if you want to write a PosValue value to a different position in the output stream. (#270, #273. Thanks, @amirbou!)BinWrite::write_ne and BinWrite::write_ne_args convenience functions have been added to match the same functions in the BinRead API.SeekFrom::End with TakeSeek now correctly seeks relative to the end of the stream if the stream is shorter than the limit. (#291)binrw::helpers::count_with to return a Vec<{integer}> using a custom function will no longer ignore the custom function. (#318. Thanks, @kitlith!)binrw::helpers functions.args directive can now be used when closures are passed to parse_with or write_with.BinReadExt and BinWriteExt traits are now appropriately annotated with #[inline].Nothing published for this version
Passing a SeekFrom::End to TakeSeek::seek now correctly seeks from the end of the TakeSeek stream instead of the end of the inner stream.
SeekFrom::End to TakeSeek::seek now correctly seeks from the end of the TakeSeek stream instead of the end of the inner stream. (#291)In derived BinWrite implementations, imported variables are now exposed before field variables, to match the way lexical scoping normally works. If an
BinWrite implementations, imported variables are now exposed before field variables, to match the way lexical scoping normally works. If an import and a field have the same name, this will cause the import to be shadowed. Previously, the field would be shadowed.parse_with and map together in an incompatible way.BinWrite derives without triggering a type mismatch error.'_ within nested types inside an import directive. (#241)verbose-backtrace is enabled and a derived type contains a docblock with a completely empty line. (#263)clippy::unnecessary_fallible_conversions lints.Nothing published for this version
Using parse_with / write_with , map_stream , and args together will no longer raise an error about incompatible stream types.
parse_with/write_with, map_stream, and args together will no longer raise an error about incompatible stream types. (#240)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →