NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #465 most downloaded on crates.io
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.
Last release 1 months ago
27 Aug 2026
Release timing varies
gaps range from 2 weeks to 1.3 years
Nearly every release is documented
notes for 20 of 21 stable releases
8 versions withdrawn
withdrawn after publishing
10 years old
45 releases · first in 2016
Use of SSE4.1 intrinsic in SSE2 backend of RNG and legacy (64-bit counter) variants
ChaCha20LegacyCore type and Nonce type alias
ChaCha20LegacyCore type and Nonce type alias (#570)One column per quarter.
ChaCha20LegacyCore type and Nonce type alias (#570)rand_core v0.10 support ( #333 , #513 )
rand_core v0.10 support (#333, #513){get,set}_block_pos inherent methods (#516)--cfg chacha20_avx512 to enable (#477)cipher from 0.4 to 0.5 - replaces generic-array withhybrid-array (#338, #521)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"rand_core v0.10 support (#333, #513){get,set}_block_pos inherent methods (#516)--cfg chacha20_avx512 to enable (#477)cipher from 0.4 to 0.5 - replaces generic-array with hybrid-array (#338, #521)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"Includes #529 which removed StreamId and changed Seed to a type alias, which are both breaking changes.
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
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 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.
Includes rand_core v0.10 upgrade
Includes rand_core v0.10 upgrade
Also releases chacha20 v0.10.0-rc.9
Also releases chacha20 v0.10.0-rc.9
This includes the (Try)RngCore => (Try)Rng changes
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
NEON support via chacha20_force_neon cfg attribute ([#310], [#317])
chacha20_force_soft, chacha20_force_sse2, and chacha20_force_avx2 configuration flags ([#293])
Unpin zeroize dependency ([#301])
zeroize dependency (#301)NEON implementation for aarch64 ([#274])
Improve AVX2 performance ([#261])
Pin zeroize dependency to v1.3 ([#256])
zeroize dependency to v1.3 (#256)[#234]: https://github.com/RustCrypto/stream-ciphers/pull/234
hchacha feature (#234)AVX2 detection; MSRV 1.49+ ([#200], [#212])
Rename Cipher to ChaCha ([#177])
Bump stream-cipher dependency to v0.7 ([#161], [#164])
Documentation improvements ([#153], [#154], [#155])
Documentation improvements ([#149])
Links in documentation ([#142])
Upgrade to the stream-cipher v0.4 crate ([#121], [#138])
Avoid accidental alloc and std linking ([#105])
alloc and std linking (#105)Replace macros with Rounds trait + generics ([#100])
CryptoRng marker on all ChaCha*Rng types ([#91])
CryptoRng marker on all ChaCha*Rng types (#91)Parallelize AVX2 backend ([#87])
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 plaintex
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]).
salsa20-core dependency with ctr-derived buffering (#81)byteorder dependency (#80)Ensure block counter < MAX_BLOCKS ([#68])
SSE2 accelerated implementation ([#61])
Add MAX_BLOCKS and BLOCK_SIZE constants ([#47])
MAX_BLOCKS and BLOCK_SIZE constants (#47)Support for 12-byte nonces ala RFC 8439 ([#19])
- Initial release
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →