1# 1.1.0 (August 25, 2021)
2
3### Added
4
5- `BufMut::put_bytes(self, val, cnt)` (#487)
6- Implement `From<Box<[u8]>>` for `Bytes` (#504)
7
8### Changed
9
10- Override `put_slice` for `&mut [u8]` (#483)
11- Panic on integer overflow in `Chain::remaining` (#482)
12- Add inline tags to `UninitSlice` methods (#443)
13- Override `copy_to_bytes` for Chain and Take (#481)
14- Keep capacity when unsplit on empty other buf (#502)
15
16### Documented
17
18- Clarify `BufMut` allocation guarantees (#501)
19- Clarify `BufMut::put_int` behavior (#486)
20- Clarify actions of `clear` and `truncate`. (#508)
21
22# 1.0.1 (January 11, 2021)
23
24### Changed
25- mark `Vec::put_slice` with `#[inline]` (#459)
26
27### Fixed
28- Fix deprecation warning (#457)
29- use `Box::into_raw` instead of `mem::forget`-in-disguise (#458)
30
31# 1.0.0 (December 22, 2020)
32
33### Changed
34- Rename `Buf`/`BufMut` methods `bytes()` and `bytes_mut()` to `chunk()` and `chunk_mut()` (#450)
35
36### Removed
37- remove unused Buf implementation. (#449)
38
39# 0.6.0 (October 21, 2020)
40
41API polish in preparation for a 1.0 release.
42
43### Changed
44- `BufMut` is now an `unsafe` trait (#432).
45- `BufMut::bytes_mut()` returns `&mut UninitSlice`, a type owned by `bytes` to
46  avoid undefined behavior (#433).
47- `Buf::copy_to_bytes(len)` replaces `Buf::into_bytes()` (#439).
48- `Buf`/`BufMut` utility methods are moved onto the trait and `*Ext` traits are
49  removed (#431).
50
51### Removed
52- `BufMut::bytes_vectored_mut()` (#430).
53- `new` methods on combinator types (#434).
54
55# 0.5.6 (July 13, 2020)
56
57- Improve `BytesMut` to reuse buffer when fully `advance`d.
58- Mark `BytesMut::{as_mut, set_len}` with `#[inline]`.
59- Relax synchronization when cloning in shared vtable of `Bytes`.
60- Move `loom` to `dev-dependencies`.
61
62# 0.5.5 (June 18, 2020)
63
64### Added
65- Allow using the `serde` feature in `no_std` environments (#385).
66
67### Fix
68- Fix `BufMut::advance_mut` to panic if advanced passed the capacity (#354)..
69- Fix `BytesMut::freeze` ignoring amount previously `advance`d (#352).
70
71# 0.5.4 (January 23, 2020)
72
73### Added
74- Make `Bytes::new` a `const fn`.
75- Add `From<BytesMut>` for `Bytes`.
76
77### Fix
78- Fix reversed arguments in `PartialOrd` for `Bytes`.
79- Fix `Bytes::truncate` losing original capacity when repr is an unshared `Vec`.
80- Fix `Bytes::from(Vec)` when allocator gave `Vec` a pointer with LSB set.
81- Fix panic in `Bytes::slice_ref` if argument is an empty slice.
82
83# 0.5.3 (December 12, 2019)
84
85### Added
86- `must_use` attributes to `split`, `split_off`, and `split_to` methods (#337).
87
88### Fix
89- Potential freeing of a null pointer in `Bytes` when constructed with an empty `Vec<u8>` (#341, #342).
90- Calling `Bytes::truncate` with a size large than the length will no longer clear the `Bytes` (#333).
91
92# 0.5.2 (November 27, 2019)
93
94### Added
95- `Limit` methods `into_inner`, `get_ref`, `get_mut`, `limit`, and `set_limit` (#325).
96
97# 0.5.1 (November 25, 2019)
98
99### Fix
100- Growth documentation for `BytesMut` (#321)
101
102# 0.5.0 (November 25, 2019)
103
104### Fix
105- Potential overflow in `copy_to_slice`
106
107### Changed
108- Increased minimum supported Rust version to 1.39.
109- `Bytes` is now a "trait object", allowing for custom allocation strategies (#298)
110- `BytesMut` implicitly grows internal storage. `remaining_mut()` returns
111  `usize::MAX` (#316).
112- `BufMut::bytes_mut` returns `&mut [MaybeUninit<u8>]` to reflect the unknown
113  initialization state (#305).
114- `Buf` / `BufMut` implementations for `&[u8]` and `&mut [u8]`
115  respectively (#261).
116- Move `Buf` / `BufMut` "extra" functions to an extension trait (#306).
117- `BufMutExt::limit` (#309).
118- `Bytes::slice` takes a `RangeBounds` argument (#265).
119- `Bytes::from_static` is now a `const fn` (#311).
120- A multitude of smaller performance optimizations.
121
122### Added
123- `no_std` support (#281).
124- `get_*`, `put_*`, `get_*_le`, and `put_*le` accessors for handling byte order.
125- `BorrowMut` implementation for `BytesMut` (#185).
126
127### Removed
128- `IntoBuf` (#288).
129- `Buf` implementation for `&str` (#301).
130- `byteorder` dependency (#280).
131- `iovec` dependency, use `std::IoSlice` instead (#263).
132- optional `either` dependency (#315).
133- optional `i128` feature -- now available on stable. (#276).
134
135# 0.4.12 (March 6, 2019)
136
137### Added
138- Implement `FromIterator<&'a u8>` for `BytesMut`/`Bytes` (#244).
139- Implement `Buf` for `VecDeque` (#249).
140
141# 0.4.11 (November 17, 2018)
142
143* Use raw pointers for potentially racy loads (#233).
144* Implement `BufRead` for `buf::Reader` (#232).
145* Documentation tweaks (#234).
146
147# 0.4.10 (September 4, 2018)
148
149* impl `Buf` and `BufMut` for `Either` (#225).
150* Add `Bytes::slice_ref` (#208).
151
152# 0.4.9 (July 12, 2018)
153
154* Add 128 bit number support behind a feature flag (#209).
155* Implement `IntoBuf` for `&mut [u8]`
156
157# 0.4.8 (May 25, 2018)
158
159* Fix panic in `BytesMut` `FromIterator` implementation.
160* Bytes: Recycle space when reserving space in vec mode (#197).
161* Bytes: Add resize fn (#203).
162
163# 0.4.7 (April 27, 2018)
164
165* Make `Buf` and `BufMut` usable as trait objects (#186).
166* impl BorrowMut for BytesMut (#185).
167* Improve accessor performance (#195).
168
169# 0.4.6 (Janary 8, 2018)
170
171* Implement FromIterator for Bytes/BytesMut (#148).
172* Add `advance` fn to Bytes/BytesMut (#166).
173* Add `unsplit` fn to `BytesMut` (#162, #173).
174* Improvements to Bytes split fns (#92).
175
176# 0.4.5 (August 12, 2017)
177
178* Fix range bug in `Take::bytes`
179* Misc performance improvements
180* Add extra `PartialEq` implementations.
181* Add `Bytes::with_capacity`
182* Implement `AsMut[u8]` for `BytesMut`
183
184# 0.4.4 (May 26, 2017)
185
186* Add serde support behind feature flag
187* Add `extend_from_slice` on `Bytes` and `BytesMut`
188* Add `truncate` and `clear` on `Bytes`
189* Misc additional std trait implementations
190* Misc performance improvements
191
192# 0.4.3 (April 30, 2017)
193
194* Fix Vec::advance_mut bug
195* Bump minimum Rust version to 1.15
196* Misc performance tweaks
197
198# 0.4.2 (April 5, 2017)
199
200* Misc performance tweaks
201* Improved `Debug` implementation for `Bytes`
202* Avoid some incorrect assert panics
203
204# 0.4.1 (March 15, 2017)
205
206* Expose `buf` module and have most types available from there vs. root.
207* Implement `IntoBuf` for `T: Buf`.
208* Add `FromBuf` and `Buf::collect`.
209* Add iterator adapter for `Buf`.
210* Add scatter/gather support to `Buf` and `BufMut`.
211* Add `Buf::chain`.
212* Reduce allocations on repeated calls to `BytesMut::reserve`.
213* Implement `Debug` for more types.
214* Remove `Source` in favor of `IntoBuf`.
215* Implement `Extend` for `BytesMut`.
216
217
218# 0.4.0 (February 24, 2017)
219
220* Initial release
221