1# Changelog
2All notable changes to this project will be documented in this file.
3
4The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
7## [0.2.2] - 2021-01-19
8### Changed
9- Forward `rustc-dep-of-std` to dependencies. [#198]
10- Highlight feature-dependend functionality in documentation using the `doc_cfg` feature. [#200]
11
12[#198]: https://github.com/rust-random/getrandom/pull/198
13[#200]: https://github.com/rust-random/getrandom/pull/200
14
15## [0.2.1] - 2021-01-03
16### Changed
17- Update `cfg-if` to v1.0. [#166]
18- Update `wasi` to v0.10. [#167]
19
20### Fixed
21- Multithreaded WASM support. [#165]
22
23### Removed
24- Windows XP support. [#177]
25- Direct `stdweb` support. [#178]
26- CloudABI support. [#184]
27
28[#165]: https://github.com/rust-random/getrandom/pull/165
29[#166]: https://github.com/rust-random/getrandom/pull/166
30[#167]: https://github.com/rust-random/getrandom/pull/167
31[#177]: https://github.com/rust-random/getrandom/pull/177
32[#178]: https://github.com/rust-random/getrandom/pull/178
33[#184]: https://github.com/rust-random/getrandom/pull/184
34
35## [0.2.0] - 2020-09-10
36### Features for using getrandom on unsupported targets
37
38The following (off by default) Cargo features have been added:
39- `"rdrand"` - use the RDRAND instruction on `no_std` `x86`/`x86_64` targets [#133]
40- `"js"` - use JavaScript calls on `wasm32-unknown-unknown` [#149]
41  - Replaces the `stdweb` and `wasm-bindgen` features (which are removed)
42- `"custom"` - allows a user to specify a custom implementation [#109]
43
44### Breaking Changes
45- Unsupported targets no longer compile [#107]
46- Change/Add `Error` constants [#120]
47- Only impl `std` traits when the `"std"` Cargo feature is specified [#106]
48- Remove offical support for Hermit, L4Re, and UEFI [#133]
49- Remove optional `"log"` dependancy [#131]
50- Update minimum supported Linux kernel to 2.6.32 [#153]
51- Update MSRV to 1.34 [#159]
52
53[#106]: https://github.com/rust-random/getrandom/pull/106
54[#107]: https://github.com/rust-random/getrandom/pull/107
55[#109]: https://github.com/rust-random/getrandom/pull/109
56[#120]: https://github.com/rust-random/getrandom/pull/120
57[#131]: https://github.com/rust-random/getrandom/pull/131
58[#133]: https://github.com/rust-random/getrandom/pull/133
59[#149]: https://github.com/rust-random/getrandom/pull/149
60[#153]: https://github.com/rust-random/getrandom/pull/153
61[#159]: https://github.com/rust-random/getrandom/pull/159
62
63## [0.1.16] - 2020-12-31
64### Changed
65- Update `cfg-if` to v1.0. [#173]
66- Implement `std::error::Error` for the `Error` type on additional targets. [#169]
67
68### Fixed
69- Multithreaded WASM support. [#171]
70
71[#173]: https://github.com/rust-random/getrandom/pull/173
72[#171]: https://github.com/rust-random/getrandom/pull/171
73[#169]: https://github.com/rust-random/getrandom/pull/169
74
75## [0.1.15] - 2020-09-10
76### Changed
77- Added support for Internet Explorer 11 [#139]
78- Fix Webpack require warning with `wasm-bindgen` [#137]
79
80[#137]: https://github.com/rust-random/getrandom/pull/137
81[#139]: https://github.com/rust-random/getrandom/pull/139
82
83## [0.1.14] - 2020-01-07
84### Changed
85- Remove use of spin-locks in the `use_file` module. [#125]
86- Update `wasi` to v0.9. [#126]
87- Do not read errno value on DragonFlyBSD to fix compilation failure. [#129]
88
89[#125]: https://github.com/rust-random/getrandom/pull/125
90[#126]: https://github.com/rust-random/getrandom/pull/126
91[#129]: https://github.com/rust-random/getrandom/pull/129
92
93## [0.1.13] - 2019-08-25
94### Added
95- VxWorks targets support. [#86]
96
97### Changed
98- If zero-length slice is passed to the `getrandom` function, always return
99`Ok(())` immediately without doing any calls to the underlying operating
100system. [#104]
101- Use the `kern.arandom` sysctl on NetBSD. [#115]
102
103### Fixed
104- Bump `cfg-if` minimum version from 0.1.0 to 0.1.2. [#112]
105- Typos and bad doc links. [#117]
106
107[#86]: https://github.com/rust-random/getrandom/pull/86
108[#104]: https://github.com/rust-random/getrandom/pull/104
109[#112]: https://github.com/rust-random/getrandom/pull/112
110[#115]: https://github.com/rust-random/getrandom/pull/115
111[#117]: https://github.com/rust-random/getrandom/pull/117
112
113## [0.1.12] - 2019-08-18
114### Changed
115- Update wasi dependency from v0.5 to v0.7. [#100]
116
117[#100]: https://github.com/rust-random/getrandom/pull/100
118
119## [0.1.11] - 2019-08-25
120### Fixed
121- Implement `std`-dependent traits for selected targets even if `std`
122feature is disabled. (backward compatibility with v0.1.8) [#96]
123
124[#96]: https://github.com/rust-random/getrandom/pull/96
125
126## [0.1.10] - 2019-08-18 [YANKED]
127### Changed
128- Use the dummy implementation on `wasm32-unknown-unknown` even with the
129disabled `dummy` feature. [#90]
130
131### Fixed
132- Fix CSP error for `wasm-bindgen`. [#92]
133
134[#90]: https://github.com/rust-random/getrandom/pull/90
135[#92]: https://github.com/rust-random/getrandom/pull/92
136
137## [0.1.9] - 2019-08-14 [YANKED]
138### Changed
139- Remove `std` dependency for opening and reading files. [#58]
140- Use `wasi` isntead of `libc` on WASI target. [#64]
141- By default emit a compile-time error when built for an unsupported target.
142This behaviour can be disabled by using the `dummy` feature. [#71]
143
144### Added
145- Add support for UWP targets. [#69]
146- Add unstable `rustc-dep-of-std` feature. [#78]
147
148[#58]: https://github.com/rust-random/getrandom/pull/58
149[#64]: https://github.com/rust-random/getrandom/pull/64
150[#69]: https://github.com/rust-random/getrandom/pull/69
151[#71]: https://github.com/rust-random/getrandom/pull/71
152[#78]: https://github.com/rust-random/getrandom/pull/78
153
154## [0.1.8] - 2019-07-29
155### Changed
156- Explicitly specify types to arguments of 'libc::syscall'. [#74]
157
158[#74]: https://github.com/rust-random/getrandom/pull/74
159
160## [0.1.7] - 2019-07-29
161### Added
162- Support for hermit and l4re. [#61]
163- `Error::raw_os_error` method, `Error::INTERNAL_START` and
164`Error::CUSTOM_START` constants. Use `libc` for retrieving OS error descriptions. [#54]
165
166### Changed
167- Remove `lazy_static` dependency and use custom structures for lock-free
168initialization. [#51] [#52]
169- Try `getrandom()` first on FreeBSD. [#57]
170
171### Removed
172-  Bitrig support. [#56]
173
174### Deprecated
175- `Error::UNKNOWN`, `Error::UNAVAILABLE`. [#54]
176
177[#51]: https://github.com/rust-random/getrandom/pull/51
178[#52]: https://github.com/rust-random/getrandom/pull/52
179[#54]: https://github.com/rust-random/getrandom/pull/54
180[#56]: https://github.com/rust-random/getrandom/pull/56
181[#57]: https://github.com/rust-random/getrandom/pull/57
182[#61]: https://github.com/rust-random/getrandom/pull/61
183
184## [0.1.6] - 2019-06-30
185### Changed
186- Minor change of RDRAND AMD bug handling. [#48]
187
188[#48]: https://github.com/rust-random/getrandom/pull/48
189
190## [0.1.5] - 2019-06-29
191### Fixed
192- Use shared `File` instead of shared file descriptor. [#44]
193- Workaround for RDRAND hardware bug present on some AMD CPUs. [#43]
194
195### Changed
196- Try `getentropy` and then fallback to `/dev/random` on macOS. [#38]
197
198[#38]: https://github.com/rust-random/getrandom/issues/38
199[#43]: https://github.com/rust-random/getrandom/pull/43
200[#44]: https://github.com/rust-random/getrandom/issues/44
201
202## [0.1.4] - 2019-06-28
203### Added
204- Add support for `x86_64-unknown-uefi` target by using RDRAND with CPUID
205feature detection. [#30]
206
207### Fixed
208- Fix long buffer issues on Windows and Linux. [#31] [#32]
209- Check `EPERM` in addition to `ENOSYS` on Linux. [#37]
210
211### Changed
212- Improve efficiency by sharing file descriptor across threads. [#13]
213- Remove `cloudabi`, `winapi`, and `fuchsia-cprng` dependencies. [#40]
214- Improve RDRAND implementation. [#24]
215- Don't block during syscall detection on Linux. [#26]
216- Increase consistency with libc implementation on FreeBSD. [#36]
217- Apply `rustfmt`. [#39]
218
219[#30]: https://github.com/rust-random/getrandom/pull/30
220[#13]: https://github.com/rust-random/getrandom/issues/13
221[#40]: https://github.com/rust-random/getrandom/pull/40
222[#26]: https://github.com/rust-random/getrandom/pull/26
223[#24]: https://github.com/rust-random/getrandom/pull/24
224[#39]: https://github.com/rust-random/getrandom/pull/39
225[#36]: https://github.com/rust-random/getrandom/pull/36
226[#31]: https://github.com/rust-random/getrandom/issues/31
227[#32]: https://github.com/rust-random/getrandom/issues/32
228[#37]: https://github.com/rust-random/getrandom/issues/37
229
230## [0.1.3] - 2019-05-15
231- Update for `wasm32-unknown-wasi` being renamed to `wasm32-wasi`, and for
232  WASI being categorized as an OS.
233
234## [0.1.2] - 2019-04-06
235- Add support for `wasm32-unknown-wasi` target.
236
237## [0.1.1] - 2019-04-05
238- Enable std functionality for CloudABI by default.
239
240## [0.1.0] - 2019-03-23
241Publish initial implementation.
242
243## [0.0.0] - 2019-01-19
244Publish an empty template library.
245