# 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). ## 0.10.3 (2024-10-09) ### Added - Make integer primitive `SecretSlice`s cloneable ([#1236]) - Impl `From<&str>` for `SecretString` ([#1237]) [#1236]: https://github.com/iqlusioninc/crates/pull/1236 [#1237]: https://github.com/iqlusioninc/crates/pull/1237 ## 0.10.2 (2024-09-20) ### Added - Impl `Deserialize` for `SecretString` ([#1220]) [#1220]: https://github.com/iqlusioninc/crates/pull/1220 ## 0.10.1 (2024-09-18) ### Added - Impl `Clone` for `SecretString` ([#1217]) [#1217]: https://github.com/iqlusioninc/crates/pull/1217 ## 0.10.0 (2024-09-17) This release represents a significant redesign of the `secrecy` crate. We will update this section with upgrade instructions based on feedback from people upgrading, as it's been a long time since the previous release, and this release includes a number of breaking changes. The most notable change is the generic `Secret` type has been removed: instead use `SecretBox` which stores secrets on the heap instead of the stack. Many of the other changes fall out of this change and things which were previously type aliases of `Secret` are now type aliases of `SecretBox`. This unfortunately means this crate no longer has support for "heapless" `no_std` targets. We don't have a good solution for these targets, which was a motivation for this change in the first place. ### Added - `SecretBox::{init_with, try_init_with}` ([#1212]) - `SecretBox::init_with_mut` ([#1213]) - `?Sized` bounds for `SecretBox` ([#1213]) - `SecretSlice` ([#1214]) ### Changed - Rust 2021 edition upgrade ([#889]) - MSRV 1.60 ([#1105]) - `SecretBox` is now a newtype rather than a type alias of `Secret> ([#1140]) - `SecretString` is now a type alias for `SecretBox` ([#1213]) - Disable `serde` default features ([#1194]) ### Removed - `alloc` feature: now a hard dependency ([#1140]) - `bytes` crate integration: no replacement ([#1140]) - `DebugSecret` trait: no replacement ([#1140]) - `Secret`: use `SecretBox` instead ([#1140]) [#889]: https://github.com/iqlusioninc/crates/pull/889 [#1105]: https://github.com/iqlusioninc/crates/pull/1105 [#1140]: https://github.com/iqlusioninc/crates/pull/1140 [#1194]: https://github.com/iqlusioninc/crates/pull/1194 [#1212]: https://github.com/iqlusioninc/crates/pull/1212 [#1213]: https://github.com/iqlusioninc/crates/pull/1213 [#1214]: https://github.com/iqlusioninc/crates/pull/1214 ## 0.9.0 (Skipped) ## 0.8.0 (2021-07-18) NOTE: This release includes an MSRV bump to Rust 1.56. Please use `secrecy = "0.7.0"` if you would like to support older Rust versions. ### Added - impl `From` for `Secret` ([#482]) ### Changed - Bump `bytes` to v1.0 ([#592]) - Switch to `resolver = "2"`; MSRV 1.56 ([#755]) [#482]: https://github.com/iqlusioninc/crates/pull/482 [#592]: https://github.com/iqlusioninc/crates/pull/592 [#755]: https://github.com/iqlusioninc/crates/pull/755 ## 0.7.0 (2020-07-08) ### Added - Re-export zeroize ([#466]) - `rustdoc` improvements ([#464], [#465]) ### Changed - Have `DebugSecret` take a formatter ([#467]) - Make `FromStr` impl for `SecretString` be `Infallible` ([#323]) ### Fixed - Use `SerializableSecret` in `Serialize` bounds ([#463]) [#467]: https://github.com/iqlusioninc/crates/pull/467 [#466]: https://github.com/iqlusioninc/crates/pull/466 [#465]: https://github.com/iqlusioninc/crates/pull/465 [#464]: https://github.com/iqlusioninc/crates/pull/464 [#463]: https://github.com/iqlusioninc/crates/pull/463 [#323]: https://github.com/iqlusioninc/crates/pull/323 ## 0.6.0 (2019-12-12) - Impl `CloneableSecret` for `Secret<[T; N]>` where `T: Clone` ([#311]) - Impl `DebugSecret` for `[T; N]` where `N` <= 64 ([#310]) - Impl `FromStr` for `SecretString` ([#309]) - Upgrade to `bytes` v0.5 ([#301], [#308], [#312]) [#312]: https://github.com/iqlusioninc/crates/pull/312 [#311]: https://github.com/iqlusioninc/crates/pull/311 [#310]: https://github.com/iqlusioninc/crates/pull/310 [#309]: https://github.com/iqlusioninc/crates/pull/309 [#308]: https://github.com/iqlusioninc/crates/pull/308 [#301]: https://github.com/iqlusioninc/crates/pull/301 ## 0.5.2 (2019-12-18) - Backport Impl `FromStr` for `SecretString` ([#309]) [#309]: https://github.com/iqlusioninc/crates/pull/309 ## 0.5.1 (2019-11-30) - Change default `DebugSecret` string to `[REDACTED]` ([#290]) [#290]: https://github.com/iqlusioninc/crates/pull/290 ## 0.5.0 (2019-10-13) - Upgrade to `zeroize` v1.0.0 ([#279]) [#279]: https://github.com/iqlusioninc/crates/pull/279 ## 0.4.1 (2019-10-13) - Upgrade to `zeroize` v1.0.0-pre ([#268]) [#268]: https://github.com/iqlusioninc/crates/pull/268 ## 0.4.0 (2019-09-03) - Add `SerializableSecret` ([#262]) - Add (optional) concrete `SecretBytes` type ([#258], [#259], [#260], [#261]) [#262]: https://github.com/iqlusioninc/crates/pull/262 [#261]: https://github.com/iqlusioninc/crates/pull/261 [#260]: https://github.com/iqlusioninc/crates/pull/260 [#259]: https://github.com/iqlusioninc/crates/pull/259 [#258]: https://github.com/iqlusioninc/crates/pull/258 ## 0.3.1 (2019-08-26) - Impl `CloneableSecret` for `String` ([#256]) [#256]: https://github.com/iqlusioninc/crates/pull/256 ## 0.3.0 (2019-08-20) - Add support for `alloc` types ([#253]) - `zeroize` v0.10.0 ([#248]) - Add a default impl for `DebugSecret` trait ([#241]) [#253]: https://github.com/iqlusioninc/crates/pull/253 [#248]: https://github.com/iqlusioninc/crates/pull/248 [#241]: https://github.com/iqlusioninc/crates/pull/241 ## 0.2.2 (2019-06-28) - README.md: add Gitter badges; update image links ([#221]) [#221]: https://github.com/iqlusioninc/crates/pull/221 ## 0.2.1 (2019-06-04) - `zeroize` v0.9.0 ([#215]) [#215]: https://github.com/iqlusioninc/crates/pull/215 ## 0.2.0 (2019-05-29) - Add `CloneableSecret` marker trait ([#210]) [#210]: https://github.com/iqlusioninc/crates/pull/210 ## 0.1.0 (2019-05-23) - Initial release