PackageTrack
Sign in Get early access

snow

A pure-rust implementation of the Noise Protocol Framework

0.10.0 26M downloads/mo #1849 most downloaded on crates.io mcginty/snow

What this package is like to depend on

Last release 1 years ago

19 Jul 2025

Release timing varies

gaps range from 1 weeks to 13 months

Rarely documented

notes for 7 of 29 stable releases

13 versions withdrawn

withdrawn after publishing

9 years old

70 releases · first in 2017

0 releases in the last 12 months

see the full history below

Release timeline

70 releases · Mar 2017 to Jul 2025
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 70
  1. 0.10.0 19 Jul 2025
    Release notes

    Quick Summary

    snow is now no_std-friendly, with only one required dependency (subtle) now if you bring your own cryptographic provider, thank you @complexspaces!

    This release also sees some breaking API changes in the builder to further prevent misuse/abuse - more builder functions now return Result<Self, Error> instead of Self.

    The P-256 curve is now also available as a non-default feature for those of you needing more curves in your life.

    Finally, this release transitioned the snow codebase to Rust 2024 and has a new MSRV of 1.85.

    New

    Improvements

    Migrating from 0.9

    The main change you'll likely notice is the need to add expect(...) or ? to a few builder functions that have been updated to further limit the chance of misuse.

    Here are the semver-breaking changes:

    • Builder function fallibility: more functions in the builder now return a Result to more explicitly prohibit calling the same setter twice.
    • DHChoice::Ed448 has been renamed to DHChoice::Curve448
    • Multiple new error enum variants have been added.

    PRs

    Full Changelog: v0.9.6...v0.10.0

    Open source →
  2. 0.10.0-beta.2 16 Jun 2025 pre-release
    Release notes

    This latest beta cleans out the dependency graph, such that snow now only has one required dependency (on subtle)! Shoutout to @complexspaces for the work.

    changes since v0.10.0-beta.1

    • Updated Rust edition to 2024
    • Remove dependency on rand, and feature-gated dependency on getrandom
    • Removed unused byteorder dependency

    Quick Summary

    snow is now no_std-friendly, with only one required dependency now if you bring your own cryptographic provider!

    This release also sees some breaking API changes in the builder to further prevent misuse/abuse - more builder functions now return Result<Self, Error> instead of Self.

    The P-256 curve is now also available as a non-default feature for those of you needing more curves in your life.

    New

    Improvements

    Migrating from 0.9

    The main change you'll likely notice is the need to add expect(...) or ? to a few builder functions that have been updated to further limit the chance of misuse.

    Here are all the semver-breaking changes:

    • Builder function fallibility: more functions in the builder now return a Result to more explicitly prohibit calling the same setter twice.
    • DHChoice::Ed448 has been renamed to DHChoice::Curve448
    • Multiple new error enum variants have been added.

    New Contributors

    Full Changelog: v0.9.0...v0.10.0-beta.1

    Open source →
  3. 0.10.0-beta.1 06 Jun 2025 pre-release
    Release notes

    v0.10.0-beta.1

    This change brings in some very welcome additions: no_std support, finally, and unofficial support for the P-256 curve.

    changes since v0.10.0-alpha.1

    • Updated rand_core to 0.9
    • Updated criterion to 0.6
    • Updated ring and curve25519-dalek versions to the latest version that doesn't have a RUSTSEC warning

    New

    Improvements

    Migrating from 0.9

    The main change you'll likely notice is the need to add expect(...) or ? to a few builder functions that have been updated to further limit the chance of misuse.

    Here are all the semver-breaking changes:

    • Builder function fallibility: more functions in the builder now return a Result to more explicitly prohibit calling the same setter twice.
    • DHChoice::Ed448 has been renamed to DHChoice::Curve448
    • Multiple new error enum variants have been added.

    New Contributors

    Full Changelog: v0.9.0...v0.10.0-beta.1

    Open source →
  4. 0.10.0-alpha.1 18 Feb 2025 pre-release
    Release notes

    v0.10.0-alpha.1

    This change brings in some very welcome additions: no_std support, finally, and unofficial support for the P-256 curve.

    New

    Improvements

    Migrating from 0.9

    This should be a zero-diff change for most users of Snow, but there are small semver incompatibilities.

    • DHChoice::Ed448 has been renamed to DHChoice::Curve448
    • Multiple new error enum variants have been added.

    New Contributors

    Full Changelog: v0.9.0...v0.10.0-alpha.1

    Open source →
  5. 0.9.6 26 Jan 2024
    Release notes
    • Validate invalid PSK positions when building a Noise protocol.
    • Raise errors in various typos/mistakes in Noise patterns when parsing.
    • Deprecate the sodiumoxide backend, as that crate is no longer maintained. We may eventually migrate it to a maintaned version of the crate, but for now it's best to warn users.
    • Set a hard limit in read_message() in transport mode to 65535 to be fully compliant with the Noise specification.

    Full Changelog: v0.9.5...v0.9.6

    Open source →
  6. 0.9.5 24 Jan 2024
    Release notes

    This is a security release that fixes a logic flaw in decryption in TransportState (i.e. the stateful one), where the nonce could increase even when decryption failed, which can cause a desync between the sender and receiver, opening this up as a denial of service vector if the attacker has the ability to inject packets in the channel Noise is talking over.

    More details can be found in the advisory: GHSA-7g9j-g5jg-3vv3

    All users are encouraged to update.

    Open source →
  7. 0.9.4 11 Nov 2023
    Release notes

    This is a dependency version bump release because a couple of important dependencies released new versions that needed a Cargo.toml bump:

    • ring 0.17
    • pqcrypto-kyber 0.8
    • aes-gcm 0.10
    • chacha20poly1305 0.10
    Open source →
  8. 0.9.3 16 Aug 2023
    Release notes

    This is a quick patch release to use the stable 4.0 version of curve25519-dalek.

    Open source →
  9. 0.9.2 13 Mar 2023
    Release notes

    This is a patch release to address a correctness issue for compliance with the Noise specification: the nonce $2^{64} - 1$ is reserved for rekeying, and CipherState and StatelessCipherState did not check that, instead just making sure that there was no integer overflow.

    Thanks to @kjvalencik for reporting the issue and @complexspaces for contributing the fix PR (#152).

    Thanks to @robyoder as well for fixing broken links and making sure all links were HTTPS (#151).

    Full Changelog: v0.9.1...v0.9.2

    Open source →
  10. 0.9.1 31 Jan 2023
    Release notes

    This is a patch release to fix build breakages due to not pinning curve25519-dalek to a specific pre-release version.

    Thanks to @Kofituo and @thomaseizinger for bringing it to attention and @tarcieri for the fix PR (#148).

    Open source →
  11. 0.9.0 03 Feb 2022

    Nothing published for this version

  12. 0.8.1 03 Feb 2022 withdrawn

    Nothing published for this version

  13. 0.8.0 11 May 2021

    Nothing published for this version

  14. 0.7.3 14 Feb 2021 withdrawn

    Nothing published for this version

  15. 0.7.2 30 Sep 2020

    Nothing published for this version

  16. 0.7.1 06 Jul 2020

    Nothing published for this version

  17. 0.7.0 15 Jun 2020

    Nothing published for this version

  18. 0.7.0-alpha5 31 May 2020 pre-release

    Nothing published for this version

  19. 0.7.0-alpha4 21 Feb 2020 pre-release

    Nothing published for this version

  20. 0.7.0-alpha3 19 Feb 2020 pre-release

    Nothing published for this version

  21. 0.7.0-alpha2 13 Feb 2020 pre-release

    Nothing published for this version

  22. 0.7.0-alpha1 08 Feb 2020 pre-release

    Nothing published for this version

  23. 0.6.2 02 Dec 2019

    Nothing published for this version

  24. 0.6.1 31 Aug 2019

    Nothing published for this version

  25. 0.6.0 14 Jul 2019

    Nothing published for this version

  26. 0.6.0-alpha2 22 Jun 2019 pre-release withdrawn

    Nothing published for this version

  27. 0.6.0-alpha1 22 Jun 2019 pre-release withdrawn

    Nothing published for this version

  28. 0.5.2 26 Feb 2019

    Nothing published for this version

  29. 0.5.1 07 Feb 2019

    Nothing published for this version

  30. 0.5.0 31 Jan 2019

    Nothing published for this version

  31. 0.5.0-alpha2 28 Jan 2019 pre-release withdrawn

    Nothing published for this version

  32. 0.5.0-alpha1 28 Jan 2019 pre-release withdrawn

    Nothing published for this version

  33. 0.4.2 16 Jan 2019

    Nothing published for this version

  34. 0.4.1 06 Jan 2019

    Nothing published for this version

  35. 0.4.0 09 Sep 2018

    Nothing published for this version

  36. 0.4.0-alpha2 24 Aug 2018 pre-release withdrawn

    Nothing published for this version

  37. 0.4.0-alpha1 02 Aug 2018 pre-release withdrawn

    Nothing published for this version

  38. 0.3.1 24 Jul 2018

    Nothing published for this version

  39. 0.3.0 23 Jul 2018

    Nothing published for this version

  40. 0.3.0-alpha5 20 Jul 2018 pre-release withdrawn

    Nothing published for this version

  41. 0.3.0-alpha4 20 Jul 2018 pre-release withdrawn

    Nothing published for this version

  42. 0.3.0-alpha3 19 Jul 2018 pre-release withdrawn

    Nothing published for this version

  43. 0.3.0-alpha2 16 Jul 2018 pre-release withdrawn

    Nothing published for this version

  44. 0.3.0-alpha1 13 Jul 2018 pre-release withdrawn

    Nothing published for this version

  45. 0.2.1 21 Jun 2018

    Nothing published for this version

  46. 0.2.0 21 Jun 2018

    Nothing published for this version

  47. 0.1.12 29 May 2018

    Nothing published for this version

  48. 0.1.11 28 May 2018

    Nothing published for this version

  49. 0.1.10 27 May 2018

    Nothing published for this version

  50. 0.1.9 01 May 2018

    Nothing published for this version

  51. 0.1.8-preview 05 Oct 2017 pre-release

    Nothing published for this version

  52. 0.1.7-preview 15 Jun 2017 pre-release

    Nothing published for this version

  53. 0.1.6-preview 31 May 2017 pre-release

    Nothing published for this version

  54. 0.1.5-preview 30 May 2017 pre-release

    Nothing published for this version

  55. 0.1.4-preview 29 May 2017 pre-release

    Nothing published for this version

  56. 0.1.3-preview 29 May 2017 pre-release

    Nothing published for this version

  57. 0.1.2-preview 29 May 2017 pre-release

    Nothing published for this version

  58. 0.1.0-preview 26 May 2017 pre-release

    Nothing published for this version

  59. 0.0.1-preview.12 26 May 2017 pre-release

    Nothing published for this version

  60. 0.0.1-preview.11 13 May 2017 pre-release

    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