PackageTrack
Sign in Get early access

zeroize

Securely clear secrets from memory with a simple trait built on stable Rust primitives which guarantee memory is zeroed using an operation will not be 'optimized away' by the compiler. Uses a portable pure Rust implementation that works everywhere, even WASM!

1.9.0 636M downloads/mo #143 most downloaded on crates.io RustCrypto/utils

What this package is like to depend on

Last release 2 months ago

12 Jun 2026

Release timing varies

gaps range from 3 weeks to 1.3 years

Nearly every release is documented

notes for 19 of 19 stable releases

27 versions withdrawn

withdrawn after publishing

8 years old

46 releases · first in 2018

2 releases in the last 12 months

see the full history below

Release timeline

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

Releases

latest 46
  1. 1.9.0 12 Jun 2026
    Release notes

    Added

    • Zeroizing is now repr(transparent) (#1253)
    • optimization_barrier function (#1261)
    • Zeroizing now supports ?Sized (#1318)
    • zeroize_stack function (#1331)

    Changed

    • Edition changed to 2024 and MSRV bumped to 1.85 (#1149)
    • Replace atomic_fence with optimization_barrier (#1252)
    • Bump zeroize_derive to v1.5 (#1492)
    • Always enable AVX-512 support (#1493)
    Open source →
    Release notes

    Added

    • Zeroizing is now repr(transparent) (#1253)
    • optimization_barrier function (#1261)
    • Zeroizing now supports ?Sized (#1318)
    • zeroize_stack function (#1331)

    Changed

    • Edition changed to 2024 and MSRV bumped to 1.85 (#1149)
    • Replace atomic_fence with optimization_barrier (#1252)
    • Bump zeroize_derive to v1.5 (#1492)
    • Always enable AVX-512 support (#1493)
    Open source →
  2. 1.8.2 29 Sep 2025
    Release notes

    Changed

    • Switch from doc_auto_cfg to doc_cfg (#1228)
    Open source →
  3. 1.8.1 25 May 2024
    Release notes

    Changed

    • Feature-gate AVX-512 support under simd; restores MSRV 1.60 (#1073)
    Open source →
  4. 1.8.0 24 Apr 2024 withdrawn
    Release notes

    NOTE: yanked due concerns over the MSRV bump. See #1067.

    Added

    • Unsafe zeroize_flat_type function (#1045)
    • Zeroize impls for __m512 types on x86/x86_64 targets (#1052)

    Changed

    • Bump MSRV to 1.72 (#1052)
    • Always enable AArch64 support (#1064)

    Fixed

    • Nightly warnings (#1055)
    Open source →
  5. 1.7.0 16 Nov 2023
    Release notes

    Changed

    • Bump MSRV to 1.60 ([#900])
    Open source →
  6. 1.6.1 15 Nov 2023 withdrawn
    Release notes

    NOTE: yanked because #900 bumped MSRV to 1.60, which vioates our MSRV policy.

    Added

    • Impl Zeroize for MaybeUninit (#900)

    Removed

    • Unnecessary cfgs on SIMD type impls (#930)
    Open source →
  7. 1.6.0 26 Mar 2023
    Release notes

    Added

    • Impl Zeroize for core::num::Wrapping (#818)
    • Impl Zeroize for str and Box<str> (#842)

    Changed

    • 2021 edition upgrade; MSRV 1.56 (#869)
    Open source →
  8. 1.5.7 20 Jul 2022
    Release notes

    Added

    • Optional serde support (#780)
    Open source →
  9. 1.5.6 29 Jun 2022
    Release notes

    Added

    • #[inline(always)] annotations (#772)
    • #[ignore] attribute on flaky CString test (#776)

    Changed

    • Factor integration tests into tests/ (#771)
    Open source →
  10. 1.5.5 01 May 2022
    Release notes

    Added

    • Impl Zeroize for std::ffi::CString (#759)
    • AsRef<T> and AsMut<T> impls for Zeroizing (#761)
    Open source →
  11. 1.5.4 17 Mar 2022
    Release notes

    Added

    • Nightly-only support for zeroizing ARM64 SIMD registers (#749)
    Open source →
  12. 1.5.3 25 Feb 2022
    Release notes

    Fixed

    • Deriving ZeroizeOnDrop on DerefMut (#739)
    Open source →
  13. 1.5.2 31 Jan 2022 withdrawn
    Release notes

    Fixed

    • Ambiguous method for AssertZeroizeOnDrop (#725)
    Open source →
  14. 1.5.1 27 Jan 2022 withdrawn
    Release notes

    Fixed

    • Double mut on AssertZeroizeOnDrop (#719)
    Open source →
  15. 1.5.0 14 Jan 2022 withdrawn
    Release notes

    Added

    • Zeroize impls for PhantomData, PhantomPinned, and tuples with 0-10 elements (#660)
    • #[zeroize(bound = "T: MyTrait")] (#663)
    • ZeroizeOnDrop trait and custom derive (#699, #700, #703)
    Open source →
  16. 1.5.0-pre 07 Jan 2022 pre-release withdrawn

    Nothing published for this version

  17. 1.4.3 05 Nov 2021
    Release notes

    Added

    • Implement Zeroize for NonZeroX

    Changed

    • Moved to RustCrypto/utils repository
    Open source →
  18. 1.4.2 21 Sep 2021
    Release notes

    Added

    • Derive Default on Zeroizing
    Open source →
  19. 1.4.1 20 Jul 2021
    Release notes

    Added

    • Implement Zeroize for [MaybeUninit<Z>]
    Open source →
  20. 1.4.0 18 Jul 2021
    Release notes

    NOTE: This release includes an MSRV bump to Rust 1.51. Please use zeroize = "1.3.0" if you would like to support older Rust versions.

    Added

    • Use const generics to impl Zeroize for [Z; N]; MSRV 1.51
    • Zeroizing::clone_from now zeroizes the destination before cloning
    Open source →
  21. 1.3.0 19 Apr 2021
    Release notes

    Added

    • impl Zeroize for Box<[Z]>
    • Clear residual space within Option

    Changed

    • Ensure Option is None when zeroized
    • Bump MSRV to 1.47
    Open source →
  22. 1.2.0 09 Dec 2020
    Release notes

    Added

    • Zeroize support for x86(-64) SIMD registers

    Changed

    • Simplify String::zeroize
    • MSRV 1.44+
    Open source →
  23. 1.1.1 15 Sep 2020
    Release notes
    • Add doc_cfg
    • zeroize entire capacity of String
    • zeroize entire capacity of Vec
    Open source →
  24. 1.1.0 03 Dec 2019
    Release notes
    • Add TryZeroize trait
    • Add From<Z: Zeroize> impl for Zeroizing<Z>
    • Remove bytes-preview feature
    Open source →
  25. 1.0.0 13 Oct 2019
    Release notes
    • Initial 1.0 release 🎉
    • zeroize_derive: Remove legacy no_drop attribute support
    • Rename bytes feature to bytes-preview
    • Further relax Zeroize trait bounds for Vec
    • Derive Clone, Debug, and Eq for Zeroizing
    Open source →
  26. 1.0.0-pre 30 Sep 2019 pre-release withdrawn
    Release notes
    • Loosen Vec trait bounds for Zeroize
    Open source →
  27. 0.10.1 03 Sep 2019 withdrawn
    Release notes
    • (Optionally) Impl Zeroize for Bytes and BytesMut
    Open source →
  28. 0.10.0 20 Aug 2019 withdrawn
    Release notes

    Barring unforeseen circumstances, this release aims to be the last 0.x release prior to a zeroize 1.0 release.

    • Disable zeroize_derive Cargo feature by default
    • Remove std feature in favor of alloc; MSRV 1.36+
    • Deprecate #[zeroize(no_drop)] attribute
    • Use 1.0 proc-macro2, quote, and syn crates
    Open source →
  29. 0.9.3 27 Jul 2019 withdrawn
    Release notes
    • Improved attribute parser; fixes nightly build
    Open source →
  30. 0.9.2 28 Jun 2019 withdrawn
    Release notes
    • README.md: add Gitter badges; update image links
    Open source →
  31. 0.9.1 05 Jun 2019 withdrawn
    Release notes
    • Impl Zeroize for Option<Z: Zeroize>
    Open source →
  32. 0.9.0 04 Jun 2019 withdrawn
    Release notes

    NOTICE: This release changes the default behavior of derive(Zeroize) to no longer derive a Drop impl. If you wish to derive Drop, you must now explicitly add a #[zeroize(drop)] attribute on the type for which you are deriving Zeroize.

    • Remove CPU fences
    • Remove scary language about undefined behavior
    • Bound blanket array impls on Zeroize instead of DefaultIsZeroes
    • Require zeroize(drop) or zeroize(no_drop) attributes when deriving Zeroize .
    • Support stabilized 'alloc' crate
    Open source →
  33. 0.8.0 20 May 2019 withdrawn
    Release notes
    • Impl Drop by default when deriving Zeroize
    Open source →
  34. 0.7.0 19 May 2019 withdrawn
    Release notes
    • Use synstructure for custom derive
    • Add explicit array impls for DefaultIsZeroes
    • Remove nightly feature
    • Add Zeroizing<Z> to zeroize values on drop
    Open source →
  35. 0.6.0 23 Mar 2019 withdrawn
    Release notes
    • Add ZeroizeOnDrop marker trait + custom derive
    • Custom derive support for Zeroize
    • Rename ZeroizeWithDefault to DefaultIsZeroes
    Open source →
  36. 0.5.2 25 Dec 2018 withdrawn
    Release notes
    • Add debug_assert! to ensure string interiors are zeroized
    Open source →
  37. 0.5.1 24 Dec 2018 withdrawn
    Release notes
    • Avoid re-exporting the whole prelude
    Open source →
  38. 0.5.0 24 Dec 2018 withdrawn
    Release notes

    This release is a rewrite which replaces FFI bindings to OS-specific APIs with a pure Rust solution.

    • Use core::sync::atomic fences
    • Test wasm target
    • Rewrite using core::ptr::write_volatile
    Open source →
  39. 0.4.2 28 Nov 2018 withdrawn
    Release notes
    • Fix ldd scraper for older glibc versions
    Open source →
  40. 0.4.1 28 Nov 2018 withdrawn
    Release notes
    • Support musl-libc
    Open source →
  41. 0.4.0 12 Oct 2018 withdrawn
    Release notes
    • Impl Zeroize trait on concrete types
    Open source →
  42. 0.3.0 12 Oct 2018 withdrawn
    Release notes
    • Replace secure_zero_memory with Zeroize
    Open source →
  43. 0.2.0 11 Oct 2018 withdrawn
    Release notes
    • Add Zeroize trait
    Open source →
  44. 0.1.2 03 Oct 2018 withdrawn
    Release notes
    • README.md: Fix intrinsic links
    Open source →
  45. 0.1.1 03 Oct 2018 withdrawn
    Release notes
    • Documentation improvements
    Open source →
  46. 0.1.0 03 Oct 2018 withdrawn
    Release notes
    • Initial release
    Open source →

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