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 2026Releases
latest 44-
0.10.124 Jun 2026 -
0.10.007 Feb 2026Release notes
Open source →Added
rand_corev0.10 support (#333, #513)- 64-bit counter support (#439)
{get,set}_block_posinherent methods (#516)- AVX-512 backend - requires
--cfg chacha20_avx512to enable (#477) - Inherent methods for RNG state (de)serialization (#541)
Changed
- Bump
cipherfrom0.4to0.5- replacesgeneric-arraywith
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
cpufeaturesto v0.3 (#530) --cfg chacha20_backend="..."replaceschacha20_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
Release notes
Open source →Added
rand_corev0.10 support (#333, #513)- 64-bit counter support (#439)
{get,set}_block_posinherent methods (#516)- AVX-512 backend - requires
--cfg chacha20_avx512to enable (#477) - Inherent methods for RNG state (de)serialization (#541)
Changed
- Bump
cipherfrom0.4to0.5- replacesgeneric-arraywithhybrid-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
cpufeaturesto v0.3 (#530) --cfg chacha20_backend="..."replaces previouschacha20_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
-
0.10.0-rc.1206 Feb 2026 pre-releaseRelease notes
Open source →Includes #529 which removed
StreamIdand changedSeedto a type
alias, which are both breaking changes.Hopefully this is the last
rcbefore a final release -
0.10.0-rc.1104 Feb 2026 pre-releaseRelease notes
Open source →This should be a true "release candidate" in that the only change we
expect in a final release is a bump tocpufeaturesv0.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 theciphercrate to v0.5, the stable
release. -
0.10.0-rc.1001 Feb 2026 pre-release -
0.10.0-rc.924 Jan 2026 pre-releaseRelease notes
Open source →Also releases
chacha20v0.10.0-rc.9This includes the
(Try)RngCore=>(Try)Rngchanges -
0.10.0-rc.820 Jan 2026 pre-releaseNothing published for this version
-
0.10.0-rc.719 Jan 2026 pre-releaseNothing published for this version
-
0.10.0-rc.624 Dec 2025 pre-releaseNothing published for this version
-
0.10.0-rc.506 Nov 2025 pre-releaseNothing published for this version
-
0.10.0-rc.405 Nov 2025 pre-releaseNothing published for this version
-
0.10.0-rc.303 Nov 2025 pre-releaseNothing published for this version
-
0.10.0-rc.209 Sep 2025 pre-releaseNothing published for this version
-
0.10.0-rc.102 Sep 2025 pre-releaseNothing published for this version
-
0.10.0-rc.030 May 2025 pre-releaseNothing published for this version
-
0.10.0-pre.328 Jan 2025 pre-releaseNothing published for this version
-
0.10.0-pre.207 Oct 2024 pre-releaseNothing published for this version
-
0.10.0-pre.127 Jul 2024 pre-releaseNothing published for this version
-
0.9.101 Apr 2023 -
0.9.021 Feb 2022 -
0.8.207 Jul 2022 -
0.8.130 Aug 2021 -
0.8.029 Aug 2021 -
0.7.327 Aug 2021 -
0.7.220 Jul 2021 -
0.7.130 Apr 2021 -
0.7.029 Apr 2021 withdrawn -
0.6.016 Oct 2020Release notes
Open source → -
0.5.025 Aug 2020 -
0.4.311 Jun 2020 -
0.4.211 Jun 2020Release notes
Open source → -
0.4.106 Jun 2020 -
0.4.006 Jun 2020 -
0.3.403 Mar 2020 -
0.3.318 Jan 2020Release notes
Open source →Changed
- Replace macros with
Roundstrait + generics (#100)
Fixed
- Fix warnings when building with
rngfeature alone (#99)
- Replace macros with
-
0.3.217 Jan 2020 -
0.3.116 Jan 2020 -
0.3.016 Jan 2020 withdrawnRelease notes
Open source →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
Changed
- Simplify portable implementation (#76)
- Make 2018 edition crate; MSRV 1.34+ (#77)
- Replace
salsa20-coredependency withctr-derived buffering (#81)
Removed
byteorderdependency (#80)
-
0.2.323 Oct 2019 -
0.2.222 Oct 2019 withdrawn -
0.2.119 Aug 2019 withdrawn -
0.2.018 Aug 2019 withdrawnRelease notes
Open source →Added
Changed
- Refactor around a
ctr-like type (#44) - Extract and encapsulate
Ciphertype (#43) - Switch tests to use
new_sync_test!(#42) - Refactor into
ChaCha20andChaCha20Legacy(#25)
Fixed
- Refactor around a
-
0.1.024 Jun 2019 withdrawn -
0.0.006 Oct 2016Nothing published for this version