0.19.5 (2026-04-27)
- embed minimal required core2/no_std_io2 traits (#411) (90fab31)
- Minimum supported Rust version (MSRV) is now 1.81, due to using
core::error::Error.
0.19.4 (2026-04-15)
0.19.3 (2024-12-06)
0.19.2 (2024-10-23)
multihash0.19.2- update
unsigned-varint
- update
codetable0.1.4- update
strobe
- update
multihash-derive0.9.1- update
multihash-derive-impl
- update
multihash-derive-impl0.9.1- remove
proc-macro-errordependency - update
synstructure - update
synto v2
- remove
0.19.1 (2023-09-06)
- make Serde (de)serialization no_std compatible (#337) (7ad5161), closes #336. This was a regression introduced in v0.19.0.
0.19.0 (2023-06-06)
- the Serde serialization format changed
- split crates into multiple to isolate breaking changes
identityhasher was removed
See the migration section below for help on upgrading.
- codetable: remove
identityhasher (#289) (8473e2f) - Serde serialize Multihash in bytes representation (#302) (1023226)
- avoid possible panic in error handling code (#277) (5dc1dfa)
- don't panic on non minimal varints (#291) (6ef6040), closes #282
- expose
MultihashDigesttrait in codetable (#304) (50b43cd)
When upgrading to v0.19, consider the following:
-
Codehas moved frommultihash::Codetomultihash_codetable::Code. It's strongly recommended to define your own code table usingmultihash_derive. Check the custom codetable example on how to use it. For the simplest migration, use themultihash_codetable::Code.Before
use multihash::{Code, MultihashDigest}; fn main() { let hash = Code::Sha2_256.digest(b"hello, world!"); println!("{:?}", hash); }
After
use multihash_codetable::{Code, MultihashDigest}; fn main() { let hash = Code::Sha2_256.digest(b"hello, world!"); println!("{:?}", hash); }
If you get compile errors, make sure you have the correct features enabled. In this case it would be the
sha2anddigestfeatures. -
multihash::Multihashnow requires the size of its internal buffer as a const-generic. You can migrate your existing code by defining the following type-alias:type Multihash = multihash::Multihash<64>;
-
The
identityhasher has been removed completely.Before
use multihash::{Code, MultihashDigest}; fn main() { let hash = Code::Identity.digest(b"hello, world!"); println!("{:?}", hash); }
After
use multihash::Multihash; const IDENTITY_HASH_CODE: u64 = 0x00; fn main() { let hash = Multihash::<64>::wrap(IDENTITY_HASH_CODE, b"hello, world!").unwrap(); println!("{:?}", hash); }
Check the identity example for more information on how to replicate the functionality.
0.18.1 (2023-04-14)
0.18.0 (2022-12-06)
-
update to Rust edition 2021
-
Multihash::write()returns bytes writtenPrior to this change it returned an empty tuple
(), now it returns the bytes written.