1.0.0 - 2026-05-22
Props to the team, our first 1.0 release from this repository. That
is no small feat. Extra props to Nick, he kicked this crate off and
worked hard on it. Props also to Kix for the overall design and
original work, his efforts don't really get fair visibility in the git
log. Poelstra, as usual patiently reviewing and merging.
Team Rust Bitcoin - LFG.
- Replace
boolonDecodertrait with theDecoderStatustype (includes Encoder side too) #6189 - Add checked decode functions #6195
- Re-name main traits #6028
- Change
EncodableByteItertoEncoderByteIter#6044 - Encoder/decoder improvements #6004
- Re-name
flush_tofunctions todrain_to#6064
Please note Encodable is now Encode and Decodable is now Decode but the old names are still
used for the old consensus encoding code in rust-bticoin.
0.2.0 - 2026-04-08
This release is breaking and causes our whole stack to have to be re-released ...
- Match core's range check decoding compact sizes #5897
- Add
u64support to compact size #5784 - Add common trait implementations #5698
- Introduce
decode_from_slice_unbounded#5664 - Improve macro defined constructor #5759
- Fill out the documentation #5720
- Expose vis fragment on exposed macros #5719
- Remove redundant trait bounds #5716
- Add
track_callerto panic-able sites #5713 - Add macros to define
EncoderNandDecoderNError#5635
It was found that the 1.0.0-rc.x releases were troublesome because
of how cargo resolves version numbers that include a suffix. For
this reason we elected to go back to pre-1.0 version numbers.
v0.1.0 is a re-release of v1.0.0-rc.3
- Add array ref encoder #5572
- Introduce lifetimes to all public Encoders #5556
- Add
flush_to_*functions #5534 - Add
ExactSizeEncoderfor known-length Encoders #5445
This changelog is a rolling description of everything that will eventually end up in v1.0.
This was truly a team effort, notably @nyonson and @jrakibi. Also please note that many of the ideas and a bunch of the code, pulled out of a draft PR by @kixunil. Initial implementation was put up by @apoelstra, then the crew hacked on it while we all reviewed. Good effort team. Also it should be noted that Kix was pushing for this work for a long time and we all resisted doing it. Now he is not around but the work got done. Props to him for many of the ideas.
- Fix
consensus-encodingpackage name #5090 - Introduce pull encoding and use it for blockhash computation #4912
- Implement
SliceEncoder#4982 - Add decoder I/O drivers #5030
- Tag composers with inline #5037
- Clean up encoders unit tests and fix empty
SliceEncoder#5039 - Add encoder composition unit tests #5045
- Implement additional decoders #5057
- Add
CompactSizeEncoderand refactorWitnessEncoder#5086 - Add
new()constructor toCompactSizeDecoder#5089 - Remove
prefix_readfield #5079 - Remove length prefix from the
BytesEncoder#5103 - Remove length prefix from
SliceEncoder#5108 - Rename
min_bytes_neededtoread_limit#5107 - Remove transitioning state #5130
- Composite decoder errors #5131
Empty crate to reserve the name on crates.io