# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 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])
[#615]: https://github.com/iqlusioninc/crates/pull/615
[#649]: https://github.com/iqlusioninc/crates/pull/649
[#685]: https://github.com/iqlusioninc/crates/pull/685
[#687]: https://github.com/iqlusioninc/crates/pull/687
## 1.2.0 (2020-12-09)
### Added
- `Zeroize` support for x86(_64) SIMD registers ([#577])
### Changed
- Simplify `String::zeroize` ([#563])
- MSRV 1.44+ ([#515])
[#577]: https://github.com/iqlusioninc/crates/pull/577
[#563]: https://github.com/iqlusioninc/crates/pull/563
[#515]: https://github.com/iqlusioninc/crates/pull/515
## 1.1.1 (2020-09-15)
- Add `doc_cfg`([#505])
- zeroize entire capacity of `String`([#352])
- zeroize entire capacity of `Vec` ([#341])
[#505]: https://github.com/iqlusioninc/crates/pull/505
[#352]: https://github.com/iqlusioninc/crates/pull/352
[#341]: https://github.com/iqlusioninc/crates/pull/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])
[#307]: https://github.com/iqlusioninc/crates/pull/307
[#304]: https://github.com/iqlusioninc/crates/pull/304
[#301]: https://github.com/iqlusioninc/crates/pull/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])
[#278]: https://github.com/iqlusioninc/crates/pull/278
[#277]: https://github.com/iqlusioninc/crates/pull/277
[#276]: https://github.com/iqlusioninc/crates/pull/276
[#275]: https://github.com/iqlusioninc/crates/pull/275
## 1.0.0-pre (2019-09-30)
- Loosen `Vec` trait bounds for `Zeroize` ([#267])
[#267]: https://github.com/iqlusioninc/crates/pull/267
## 0.10.1 (2019-09-03)
- (Optionally) Impl `Zeroize` for `Bytes` and `BytesMut` ([#258], [#259])
[#259]: https://github.com/iqlusioninc/crates/pull/259
[#258]: https://github.com/iqlusioninc/crates/pull/258
## 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])
[#247]: https://github.com/iqlusioninc/crates/pull/247
[#246]: https://github.com/iqlusioninc/crates/pull/246
[#244]: https://github.com/iqlusioninc/crates/pull/244
[#242]: https://github.com/iqlusioninc/crates/pull/242
## 0.9.3 (2019-07-27)
- Improved attribute parser; fixes nightly build ([#238])
[#238]: https://github.com/iqlusioninc/crates/pull/238
## 0.9.2 (2019-06-28)
- README.md: add Gitter badges; update image links ([#221])
[#221]: https://github.com/iqlusioninc/crates/pull/221
## 0.9.1 (2019-06-04)
- Impl `Zeroize` for `Option<Z: Zeroize>` ([#219])
[#219]: https://github.com/iqlusioninc/crates/pull/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])
[#216]: https://github.com/iqlusioninc/crates/pull/216
[#214]: https://github.com/iqlusioninc/crates/pull/214
[#213]: https://github.com/iqlusioninc/crates/pull/213
[#212]: https://github.com/iqlusioninc/crates/pull/212
[#192]: https://github.com/iqlusioninc/crates/pull/192
## 0.8.0 (2019-05-20)
- Impl `Drop` by default when deriving `Zeroize` ([#188])
[#188]: https://github.com/iqlusioninc/crates/pull/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])
[#185]: https://github.com/iqlusioninc/crates/pull/185
[#184]: https://github.com/iqlusioninc/crates/pull/184
[#183]: https://github.com/iqlusioninc/crates/pull/183
[#182]: https://github.com/iqlusioninc/crates/pull/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])
[#168]: https://github.com/iqlusioninc/crates/pull/168
[#167]: https://github.com/iqlusioninc/crates/pull/167
[#166]: https://github.com/iqlusioninc/crates/pull/166
## 0.5.2 (2018-12-25)
- Add `debug_assert!` to ensure string interiors are zeroized ([#156])
[#156]: https://github.com/iqlusioninc/crates/pull/156
## 0.5.1 (2018-12-24)
- Avoid re-exporting the whole prelude ([#150])
[#150]: https://github.com/iqlusioninc/crates/pull/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])
[#146]: https://github.com/iqlusioninc/crates/pull/146
[#143]: https://github.com/iqlusioninc/crates/pull/143
[#142]: https://github.com/iqlusioninc/crates/pull/142
## 0.4.2 (2018-10-12)
- Fix ldd scraper for older glibc versions ([#134])
[#134]: https://github.com/iqlusioninc/crates/pull/134
## 0.4.1 (2018-10-12)
- Support musl-libc ([#131])
[#131]: https://github.com/iqlusioninc/crates/pull/131
## 0.4.0 (2018-10-12)
- Impl `Zeroize` trait on concrete types ([#108])
[#108]: https://github.com/iqlusioninc/crates/pull/108
## 0.3.0 (2018-10-11)
- Replace `secure_zero_memory` with `Zeroize` ([#104])
[#104]: https://github.com/iqlusioninc/crates/pull/104
## 0.2.0 (2018-10-11)
- Add `Zeroize` trait ([#101])
[#101]: https://github.com/iqlusioninc/crates/pull/101
## 0.1.2 (2018-10-03)
- README.md: Fix intrinsic links ([#86])
[#86]: https://github.com/iqlusioninc/crates/pull/86
## 0.1.1 (2018-10-03)
- Documentation improvements ([#83])
[#83]: https://github.com/iqlusioninc/crates/pull/83
## 0.1.0 (2018-10-03)
- Initial release