Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.3.0 (2021-04-19)

Added

  • impl Zeroize for Box<[Z]> (#615)
  • Clear residual space within Option (#687)

Changed

  • Ensure Option is None when zeroized (#649)
  • Bump MSRV to 1.47 (#685)

1.2.0 (2020-12-09)

Added

  • Zeroize support for x86(_64) SIMD registers (#577)

Changed

  • Simplify String::zeroize (#563)
  • MSRV 1.44+ (#515)

1.1.1 (2020-09-15)

  • Add doc_cfg(#505)
  • zeroize entire capacity of String(#352)
  • zeroize entire capacity of Vec (#341)

1.1.0 (2019-12-02)

  • Add TryZeroize trait (#307)
  • Add From<Z: Zeroize> impl for Zeroizing<Z> (#304)
  • Remove bytes-preview feature (#301)

1.0.0 (2019-10-13)

  • Initial 1.0 release 🎉
  • zeroize_derive: Remove legacy no_drop attribute support (#278)
  • Rename bytes feature to bytes-preview (#277)
  • Further relax Zeroize trait bounds for Vec (#276)
  • Derive Clone, Debug, and Eq for Zeroizing (#275)

1.0.0-pre (2019-09-30)

  • Loosen Vec trait bounds for Zeroize (#267)

0.10.1 (2019-09-03)

  • (Optionally) Impl Zeroize for Bytes and BytesMut (#258, #259)

0.10.0 (2019-08-19)

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 (#247)
  • Remove std feature in favor of alloc; MSRV 1.36+ (#246)
  • Deprecate #[zeroize(no_drop)] attribute (#244)
  • Use 1.0 proc-macro2, quote, and syn crates (#242)

0.9.3 (2019-07-27)

  • Improved attribute parser; fixes nightly build (#238)

0.9.2 (2019-06-28)

  • README.md: add Gitter badges; update image links (#221)

0.9.1 (2019-06-04)

  • Impl Zeroize for Option<Z: Zeroize> (#219)

0.9.0 (2019-06-04)

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 (#216)
  • Remove scary language about undefined behavior (#214)
  • Bound blanket array impls on Zeroize instead of DefaultIsZeroes (#213)
  • Require zeroize(drop) or zeroize(no_drop) attributes when deriving Zeroize (#212).
  • Support stablized ‘alloc’ crate (#192)

0.8.0 (2019-05-20)

  • Impl Drop by default when deriving Zeroize (#188)

0.7.0 (2019-05-19)

  • Use synstructure for custom derive (#185)
  • Add explicit array impls for DefaultIsZeroes (#184)
  • Remove nightly feature (#183)
  • Add Zeroizing<Z> to zeroize values on drop (#182)

0.6.0 (2019-03-23)

  • Add ZeroizeOnDrop marker trait + custom derive (#168)
  • Custom derive support for Zeroize (#167)
  • Rename ZeroizeWithDefault to DefaultIsZeroes (#166)

0.5.2 (2018-12-25)

  • Add debug_assert! to ensure string interiors are zeroized (#156)

0.5.1 (2018-12-24)

  • Avoid re-exporting the whole prelude (#150)

0.5.0 (2018-12-24)

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

  • Use core::sync::atomic fences (#146)
  • Test wasm target (#143)
  • Rewrite using core::ptr::write_volatile (#142)

0.4.2 (2018-10-12)

  • Fix ldd scraper for older glibc versions (#134)

0.4.1 (2018-10-12)

  • Support musl-libc (#131)

0.4.0 (2018-10-12)

  • Impl Zeroize trait on concrete types (#108)

0.3.0 (2018-10-11)

  • Replace secure_zero_memory with Zeroize (#104)

0.2.0 (2018-10-11)

  • Add Zeroize trait (#101)

0.1.2 (2018-10-03)

  • README.md: Fix intrinsic links (#86)

0.1.1 (2018-10-03)

  • Documentation improvements (#83)

0.1.0 (2018-10-03)

  • Initial release