# Changelog
## Unreleased
## 0.16.1 (2024-05-15)
* Replace `ptr::invalid_mut` usage with `ptr::without_provenance_mut` so the `nightly` feature can compile on the latest nightly toolchain. ([#236])
* Updated `ahash` to a version that no longer has licencing issues with the `zerocopy` dependency. ([#237])
* Update `tynm` to resolve future incompatibility warning from the `nom` dependency. ([#237])
[#236]: https://github.com/amethyst/shred/pull/236
[#237]: https://github.com/amethyst/shred/pull/237
## 0.16.0 / 0.7.0 shred-derive (2024-01-11)
* Updated `ahash` from `0.7.6` to `0.8.5`. ([#231])
* `shred-derive`: prepend `shred::` to type paths so that `World`, `SystemData`, and `ResourceId`
don't need to be in scope when using `SystemData` derive. `shred` does need to be in scope now
though, so if you are using the derive through `specs`, a `use specs::shred;` is neccessary. ([#232])
* Add `SendDispatcher` for cases where thread local systems are not used and you need a `Send`able
dispatcher. ([#234])
[#231]: https://github.com/amethyst/shred/pull/231
[#232]: https://github.com/amethyst/shred/pull/232
[#234]: https://github.com/amethyst/shred/pull/234
## 0.15.0 (2023-09-16)
* Have `DispatcherBuilder::add_batch()` use the correct access. ([#221], [#222])
* Replace custom `TrustCell` type with `atomic_refcell::AtomicCell`. This reduces unsafe
code in `shred` and uses less atomic operations. ([#224])
* Mark `World::try_fetch_internal` as `unsafe` since it can be misused to break invariants.
([#224])
* Increase MSRV to 1.65.0 ([#226])
* Rewrite `MetaTable` to avoid UB issues detected by Miri. ([#226])
* `CastFrom` trait now now uses a single method that operates on pointers instead of separate
cases for `&T` and `&mut T`.
* New implementation is slower, so a `nightly` feature was added to use the unstable
`ptr_metadata` feature for a more efficient implementation.
[#221]: https://github.com/amethyst/shred/issues/221
[#222]: https://github.com/amethyst/shred/pull/222
[#224]: https://github.com/amethyst/shred/pull/224
[#226]: https://github.com/amethyst/shred/pull/226
## 0.14.1 (2022-07-14)
* Undo performance regression from removing `hashbrown` by using `ahash` hasher
## 0.14.0 (2022-07-12)
* Removed dependency `hashbrown` since it is part of `std` since Rust 1.36
* Removed dependency `mopa` since it is unmaintained and has a potential vulnerability
## 0.13.0 (2022-06-22)
* Bumped dependency of `hashbrown` to `0.12`
* Bumped dependency of `arrayvec` to `0.7.2`.
* Add getters to DispatcherBuilder
* increase minimal rust version to `1.56.1`
* improve performance by switching to `compare_exchange_weak`
## 0.12.0 (2021-03-21)
* Bumped dependency of `hashbrown` to `0.11`
## 0.11.1 (2021-03-10)
* Bumped dependency of smallvec as there was an open RUSTSEC issue
## 0.11.0 (2020-12-21)
* Batch dispatching ergonomics -- remove `unsafe` on the user side. ([#197], [#198]).
* Bumped dependency versions. ([#203], [#204])
[#197]: https://github.com/amethyst/shred/issues/197
[#198]: https://github.com/amethyst/shred/pull/198
[#203]: https://github.com/amethyst/shred/issues/203
[#204]: https://github.com/amethyst/shred/pull/204
## 0.10.2 (2020-02-13)
### Changed
* Bumped dependency versions. ([#193])
[#193]: https://github.com/amethyst/shred/pull/193
## 0.10.1 (2020-02-12)
### Changed
* Bump `tynm` to `0.1.3`. ([#187])
* Implement `Resource` for `!Send + !Sync` types when `"parallel"` feature is disabled. ([#186])
[#186]: https://github.com/amethyst/shred/pull/186
[#187]: https://github.com/amethyst/shred/pull/187
## 0.10.0 (2019-12-31)
### Changed
* Updated `arrayvec` from `0.4` to `0.5`. ([#176])
* Updated `rayon` from `1.1` to `1.3`. ([#180])
* Updated `smallvec` from `0.6` to `1.1`. ([#180])
* `shred-derive`: Updated `syn`, `quote`, `proc-macro2` to `1.0`. ([#176])
* ***Minimum Supported Rust Version updated to `1.38.0`***. ([#176])
* Improved clarity of fetch panic message. ([#182])
[#176]: https://github.com/amethyst/shred/issues/176
[#180]: https://github.com/amethyst/shred/issues/180
[#182]: https://github.com/amethyst/shred/issues/182
## 0.9.4 (2019-11-16)
### Added
* Batch dispatching. ([#147])
[#147]: https://github.com/amethyst/shred/pull/147