PackageTrack
Sign in Get early access

chacha20

The ChaCha20 stream cipher (RFC 8439) implemented in pure Rust using traits from the RustCrypto `cipher` crate, with optional architecture-specific hardware acceleration (AVX2, SSE2). Additionally provides the ChaCha8, ChaCha12, XChaCha20, XChaCha12 and XChaCha8 stream ciphers, and also optional rand_core-compatible RNGs based on those ciphers.

0.10.1 177M downloads/mo #551 most downloaded on crates.io RustCrypto/stream-ciphers

What this package is like to depend on

Last release 2 months ago

24 Jun 2026

Release timing varies

gaps range from 2 weeks to 1.3 years

Nearly every release is documented

notes for 21 of 22 stable releases

6 versions withdrawn

withdrawn after publishing

10 years old

44 releases · first in 2016

14 releases in the last 12 months

see the full history below

Release timeline

44 releases · Oct 2016 to Jun 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 44
  1. 0.10.1 24 Jun 2026
    Release notes

    Added

    • ChaCha20LegacyCore type and Nonce type alias (#570)
    Open source →
    Release notes

    Added

    • ChaCha20LegacyCore type and Nonce type alias (#570)
    Open source →
  2. 0.10.0 07 Feb 2026
    Release notes

    Added

    • rand_core v0.10 support (#333, #513)
    • 64-bit counter support (#439)
    • {get,set}_block_pos inherent methods (#516)
    • AVX-512 backend - requires --cfg chacha20_avx512 to enable (#477)
    • Inherent methods for RNG state (de)serialization (#541)

    Changed

    • Bump cipher from 0.4 to 0.5 - replaces generic-array with
      hybrid-array (#338, #521)
    • Edition changed to 2024 and MSRV bumped to 1.85 (#397)
    • Relax MSRV policy and allow MSRV bumps in patch releases
    • Bump cpufeatures to v0.3 (#530)
    • --cfg chacha20_backend="..." replaces chacha20_force* (#520)
      • chacha20_force_avx2 => chacha20_backend="avx2"
      • chacha20_force_avx512 => chacha20_backend="avx512"
      • chacha20_force_soft => chacha20_backend="soft"
      • chacha20_force_sse2 => chacha20_backend="sse2"

    Removed

    • chacha20_force_neon cfg attribute - now on-by-default for supported
      targets (#361)
    • std feature (#397)
    • Clone impls (#462)
    Open source →
    Release notes

    Added

    • rand_core v0.10 support (#333, #513)
    • 64-bit counter support (#439)
    • {get,set}_block_pos inherent methods (#516)
    • AVX-512 backend - requires --cfg chacha20_avx512 to enable (#477)
    • Inherent methods for RNG state (de)serialization (#541)

    Changed

    • Bump cipher from 0.4 to 0.5 - replaces generic-array with hybrid-array (#338, #521)
    • Edition changed to 2024 and MSRV bumped to 1.85 (#397)
    • Relax MSRV policy and allow MSRV bumps in patch releases
    • Bump cpufeatures to v0.3 (#530)
    • --cfg chacha20_backend="..." replaces previous chacha20_force* (#520)
      • chacha20_force_avx2 => chacha20_backend="avx2"
      • chacha20_force_avx512 => chacha20_backend="avx512"
      • chacha20_force_soft => chacha20_backend="soft"
      • chacha20_force_sse2 => chacha20_backend="sse2"

    Removed

    • chacha20_force_neon cfg attribute - now on-by-default for supported targets (#361)
    • std feature (#397)
    • Clone impls (#462)
    Open source →
  3. 0.10.0-rc.12 06 Feb 2026 pre-release
    Release notes

    Includes #529 which removed StreamId and changed Seed to a type
    alias, which are both breaking changes.

    Hopefully this is the last rc before a final release

    Open source →
  4. 0.10.0-rc.11 04 Feb 2026 pre-release
    Release notes

    This should be a true "release candidate" in that the only change we
    expect in a final release is a bump to cpufeatures v0.3.

    This release includes --cfg chacha20_backend="..." changes in #520, as
    well as the opt-in AVX-512 backend that can be enabled with --cfg chacha20_avx512, and also bumps the cipher crate to v0.5, the stable
    release.

    Open source →
  5. 0.10.0-rc.10 01 Feb 2026 pre-release
    Release notes

    Includes rand_core v0.10 upgrade

    Open source →
  6. 0.10.0-rc.9 24 Jan 2026 pre-release
    Release notes

    Also releases chacha20 v0.10.0-rc.9

    This includes the (Try)RngCore => (Try)Rng changes

    Open source →
  7. 0.10.0-rc.8 20 Jan 2026 pre-release

    Nothing published for this version

  8. 0.10.0-rc.7 19 Jan 2026 pre-release

    Nothing published for this version

  9. 0.10.0-rc.6 24 Dec 2025 pre-release

    Nothing published for this version

  10. 0.10.0-rc.5 06 Nov 2025 pre-release

    Nothing published for this version

  11. 0.10.0-rc.4 05 Nov 2025 pre-release

    Nothing published for this version

  12. 0.10.0-rc.3 03 Nov 2025 pre-release

    Nothing published for this version

  13. 0.10.0-rc.2 09 Sep 2025 pre-release

    Nothing published for this version

  14. 0.10.0-rc.1 02 Sep 2025 pre-release

    Nothing published for this version

  15. 0.10.0-rc.0 30 May 2025 pre-release

    Nothing published for this version

  16. 0.10.0-pre.3 28 Jan 2025 pre-release

    Nothing published for this version

  17. 0.10.0-pre.2 07 Oct 2024 pre-release

    Nothing published for this version

  18. 0.10.0-pre.1 27 Jul 2024 pre-release

    Nothing published for this version

  19. 0.9.1 01 Apr 2023
    Release notes

    Added

    • NEON support via chacha20_force_neon cfg attribute (#310, #317)
    Open source →
  20. 0.9.0 21 Feb 2022
    Release notes

    Added

    • chacha20_force_soft, chacha20_force_sse2, and chacha20_force_avx2 configuration flags (#293)

    Changed

    • Bump cipher dependency to v0.4 (#276)

    Fixed

    • Minimal versions build (#290)

    Removed

    • neon, force-soft, expose-core, hchacha, legacy, and rng features (#276, #293)
    Open source →
  21. 0.8.2 07 Jul 2022
    Release notes

    Changed

    • Unpin zeroize dependency (#301)
    Open source →
  22. 0.8.1 30 Aug 2021
    Release notes

    Added

    • NEON implementation for aarch64 (#274)
    Open source →
  23. 0.8.0 29 Aug 2021
    Release notes

    Added

    • SSE2 autodetection support (#270)

    Changed

    • AVX2 performance improvements (#267, #267)
    • MSRV 1.51+ (#267)
    • Lock to zeroize <1.5 (#269)

    Removed

    • xchacha feature: all XChaCha* types are now available by-default (#271)
    Open source →
  24. 0.7.3 27 Aug 2021
    Release notes

    Changed

    • Improve AVX2 performance (#261)
    • Bump cpufeatures to v0.2 (#265)
    Open source →
  25. 0.7.2 20 Jul 2021
    Release notes

    Changed

    • Pin zeroize dependency to v1.3 (#256)
    Open source →
  26. 0.7.1 30 Apr 2021
    Release notes

    Added

    • hchacha feature (#234)
    Open source →
  27. 0.7.0 29 Apr 2021 withdrawn
    Release notes

    Added

    • AVX2 detection; MSRV 1.49+ (#200, #212)
    • XChaCha8 and XChaCha12 (#215)

    Changed

    • Full 64-bit counters (#217)
    • Bump cipher crate dependency to v0.3 release (#226)

    Fixed

    • rng feature on big endian platforms (#202)
    • Stream-length overflow check (#216)

    Removed

    • Clone impls on RNGs (#220)
    Open source →
  28. 0.6.0 16 Oct 2020
    Release notes

    Changed

    • Rename Cipher to ChaCha (#177)
    • Replace block-cipher/stream-cipher with cipher crate (#177)
    Open source →
  29. 0.5.0 25 Aug 2020
    Release notes

    Changed

    • Bump stream-cipher dependency to v0.7 (#161, #164)
    Open source →
  30. 0.4.3 11 Jun 2020
    Release notes

    Changed

    Open source →
  31. 0.4.2 11 Jun 2020
    Release notes

    Added

    • Documentation improvements (#149)
    • Key, Nonce, XNonce, and LegacyNonce type aliases (#147)
    Open source →
  32. 0.4.1 06 Jun 2020
    Release notes

    Fixed

    • Links in documentation (#142)
    Open source →
  33. 0.4.0 06 Jun 2020
    Release notes

    Changed

    • Upgrade to the stream-cipher v0.4 crate (#121, #138)
    Open source →
  34. 0.3.4 03 Mar 2020
    Release notes

    Fixed

    • Avoid accidental alloc and std linking (#105)
    Open source →
  35. 0.3.3 18 Jan 2020
    Release notes

    Changed

    • Replace macros with Rounds trait + generics (#100)

    Fixed

    • Fix warnings when building with rng feature alone (#99)
    Open source →
  36. 0.3.2 17 Jan 2020
    Release notes

    Added

    • CryptoRng marker on all ChaCha*Rng types (#91)
    Open source →
  37. 0.3.1 16 Jan 2020
    Release notes

    Added

    • Parallelize AVX2 backend (#87)
    • Benchmark for ChaCha20Rng (#87)

    Fixed

    • Fix broken buffering logic (#86)
    Open source →
  38. 0.3.0 16 Jan 2020 withdrawn
    Release notes

    NOTE: This release was yanked due to a showstopper bug in the newly added buffering logic which when seeking in the keystream could result in plaintexts being clobbered with the keystream instead of XOR'd correctly.

    The bug was addressed in v0.3.1 ([#86]).

    Added

    • AVX2 accelerated implementation (#83)
    • ChaCha8 and ChaCha20 reduced round variants (#84)

    Changed

    • Simplify portable implementation (#76)
    • Make 2018 edition crate; MSRV 1.34+ (#77)
    • Replace salsa20-core dependency with ctr-derived buffering (#81)

    Removed

    • byteorder dependency (#80)
    Open source →
  39. 0.2.3 23 Oct 2019
    Release notes

    Security

    • Ensure block counter < MAX_BLOCKS (#68)
    Open source →
  40. 0.2.2 22 Oct 2019 withdrawn
    Release notes

    Added

    • SSE2 accelerated implementation (#61)
    Open source →
  41. 0.2.1 19 Aug 2019 withdrawn
    Release notes

    Added

    • Add MAX_BLOCKS and BLOCK_SIZE constants (#47)
    Open source →
  42. 0.2.0 18 Aug 2019 withdrawn
    Release notes

    Added

    • impl SyncStreamCipher (#39)
    • XChaCha20 (#36)
    • Support for 12-byte nonces ala RFC 8439 (#19)

    Changed

    • Refactor around a ctr-like type (#44)
    • Extract and encapsulate Cipher type (#43)
    • Switch tests to use new_sync_test! (#42)
    • Refactor into ChaCha20 and ChaCha20Legacy (#25)

    Fixed

    • Fix zeroize cargo feature (#21)
    • Fix broken Cargo feature attributes (#21)
    Open source →
  43. 0.1.0 24 Jun 2019 withdrawn
    Release notes
    • Initial release
    Open source →
  44. 0.0.0 06 Oct 2016

    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