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