PackageTrack
Sign in Get early access

multihash

Implementation of the multihash format

0.19.5 42M downloads/mo #1379 most downloaded on crates.io multiformats/rust-multihash

What this package is like to depend on

Last release 3 months ago

27 Apr 2026

Release timing varies

gaps range from 2 weeks to 1.4 years

Rarely documented

notes for 8 of 41 stable releases

1 version withdrawn

withdrawn after publishing

11 years old

42 releases · first in 2015

2 releases in the last 12 months

see the full history below

Release timeline

42 releases · Dec 2015 to Apr 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 42
  1. 0.19.5 27 Apr 2026
    Release notes

    chore: Release multihash version 0.19.5

    Open source →
    Release notes

    Features

    • 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.
    Open source →
  2. 0.19.4 15 Apr 2026
    Release notes

    chore: Release multihash version 0.19.4

    Open source →
    Release notes

    Features

    • implement digest:Update for all hashers (#405) (08f8410)

    Bug Fixes

    Open source →
  3. 0.19.3 06 Dec 2024
    Release notes

    chore: Release multihash version 0.19.3

    Open source →
    Release notes

    Bug Fixes

    Open source →
  4. 0.19.2 24 Oct 2024
    Release notes
    • multihash 0.19.2
      • update unsigned-varint
    • codetable 0.1.4
      • update strobe
    • multihash-derive 0.9.1
      • update multihash-derive-impl
    • multihash-derive-impl 0.9.1
      • remove proc-macro-error dependency
      • update synstructure
      • update syn to v2
    Open source →
    Release notes

    Dependency Updates

    • multihash 0.19.2
      • update unsigned-varint
    • codetable 0.1.4
      • update strobe
    • multihash-derive 0.9.1
      • update multihash-derive-impl
    • multihash-derive-impl 0.9.1
      • remove proc-macro-error dependency
      • update synstructure
      • update syn to v2
    Open source →
  5. 0.19.1 07 Sep 2023
    Release notes

    Bug Fixes

    • make Serde (de)serialization no_std compatible (#337) (7ad5161), closes #336. This was a regression introduced in v0.19.0.
    Open source →
  6. 0.19.0 06 Jun 2023
    Release notes

    ⚠ BREAKING CHANGES

    • the Serde serialization format changed
    • split crates into multiple to isolate breaking changes
    • identity hasher was removed

    See the migration section below for help on upgrading.

    Features

    • codetable: remove identity hasher (#289) (8473e2f)
    • Serde serialize Multihash in bytes representation (#302) (1023226)

    Bug Fixes

    • avoid possible panic in error handling code (#277) (5dc1dfa)
    • don't panic on non minimal varints (#291) (6ef6040), closes #282
    • expose MultihashDigest trait in codetable (#304) (50b43cd)

    Code Refactoring

    • split crates into multiple to isolate breaking changes (#272) (954e523)

    Migrating

    When upgrading to v0.19, consider the following:

    • Code has moved from multihash::Code to multihash_codetable::Code. It's strongly recommended to define your own code table using multihash_derive. Check the custom codetable example on how to use it. For the simplest migration, use the multihash_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 sha2 and digest features.

    • multihash::Multihash now 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 identity hasher 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.

    Open source →
  7. 0.18.1 14 Apr 2023
    Release notes

    Bug Fixes

    Open source →
  8. 0.18.0 06 Dec 2022
    Release notes

    ⚠ BREAKING CHANGES

    • update to Rust edition 2021

    • Multihash::write() returns bytes written

      Prior to this change it returned an empty tuple (), now it returns the bytes written.

    Features

    Bug Fixes

    Open source →
  9. 0.17.0 07 Nov 2022

    Nothing published for this version

  10. 0.16.3 11 Aug 2022

    Nothing published for this version

  11. 0.16.2 31 Mar 2022

    Nothing published for this version

  12. 0.16.1 04 Feb 2022

    Nothing published for this version

  13. 0.16.0 01 Feb 2022

    Nothing published for this version

  14. 0.15.0 04 Oct 2021

    Nothing published for this version

  15. 0.14.0 26 May 2021

    Nothing published for this version

  16. 0.13.2 01 Dec 2020

    Nothing published for this version

  17. 0.13.1 16 Nov 2020

    Nothing published for this version

  18. 0.13.0 10 Nov 2020

    Nothing published for this version

  19. 0.12.0 30 Oct 2020

    Nothing published for this version

  20. 0.11.4 27 Aug 2020

    Nothing published for this version

  21. 0.11.3 21 Aug 2020

    Nothing published for this version

  22. 0.11.2 19 May 2020

    Nothing published for this version

  23. 0.11.1 08 May 2020

    Nothing published for this version

  24. 0.11.0 07 May 2020

    Nothing published for this version

  25. 0.10.1 06 Mar 2020

    Nothing published for this version

  26. 0.10.0 26 Feb 2020

    Nothing published for this version

  27. 0.9.4 04 Feb 2020

    Nothing published for this version

  28. 0.9.3 20 Dec 2019

    Nothing published for this version

  29. 0.9.2 20 Dec 2019

    Nothing published for this version

  30. 0.9.1 20 Dec 2019

    Nothing published for this version

  31. 0.9.0 20 Dec 2019 withdrawn

    Nothing published for this version

  32. 0.8.0 17 May 2018

    Nothing published for this version

  33. 0.7.0 03 Nov 2017

    Nothing published for this version

  34. 0.6.0 09 May 2017

    Nothing published for this version

  35. 0.5.2 26 Mar 2017

    Nothing published for this version

  36. 0.5.1 17 Mar 2017

    Nothing published for this version

  37. 0.5.0 06 Feb 2017

    Nothing published for this version

  38. 0.4.2 02 Feb 2017

    Nothing published for this version

  39. 0.4.1 01 Feb 2017

    Nothing published for this version

  40. 0.4.0 28 Jan 2017

    Nothing published for this version

  41. 0.3.0 18 Jan 2017

    Nothing published for this version

  42. 0.1.0 28 Dec 2015

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive