# 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.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [0.12.1] - 2024-05-07 - Add WASM support ## [0.12.0] - 2024-05-04 - Add `Send` to `Manager::Type` and `Manager::Error` associated types - Add `Send` to `Manager::create` and `Manager::recycle` return types ## [0.11.2] - 2024-04-10 - Make `Timeouts::new` and `Timeouts::wait_millis` functions const fns ## [0.11.1] - 2024-04-06 - Remove unused `console` dependency ## [0.11.0] - 2024-04-01 - Remove `async_trait` dependency - Bump up MSRV to `1.75` ## [0.10.0] - 2023-09-25 - Remove unreachable enum variant `BuildError::Backend` - Split `Status.available` into `available` and `waiting`. - Add `QueueMode` configuration option for choosing between a `FIFO` (default) and `LIFO` queue. - Remove `HookError::Continue` and `HookError::Abort` variants replacing it with the contents of `HookErrorCause`. Returning a `HookError` from a `post_create` hook causes the `Pool::get` operation to fail while returning it from a `pre_recycle` or `post_recycle` hook the operation continues. - Add `metrics` argument to `Manager::recycle` method. - Remove deprecated `managed::sync` module. - Remove deprecated `managed::Pool::try_get` method. - Bump up MSRV to `1.63` to match the one of `tokio`. ## [0.9.5] - 2022-05-20 - Fix bug causing the pool to exceed its `max_size` in the case of a recycling error. - Fix panic caused by an integer overflow in the case of a failing `post_create` hook. ## [0.9.4] - 2022-04-27 - Fix `HookError` and `HookErrorCause` in re-exports ## [0.9.3] - 2022-04-12 - Add `Pool::retain` method - Fix `Pool::get_timeouts` method - Deprecate `managed::Pool::try_get` - Add `Pool::timeouts` method ## [0.9.2] - 2021-11-15 - `PoolConfig` now implements `Serialize` ## [0.9.1] - 2021-10-26 - Deprecate `managed::sync` module in favor of `deadpool-sync` crate - Extract `runtime` module as separate `deadpool-runtime` crate ## [0.9.0] - 2021-10-18 - __Breaking:__ Replace `config` feature with `serde` (opted out by default) - Fix `std::error::Error::source` implementations for library errors - Add `Runtime::spawn_blocking` method - Add `Runtime::spawn_blocking_background` method - Remove `Runtime::None` in favor of `Option` - Remove `Pool::new` method - Add `Pool::builder` method and `PoolBuilder` struct - Add `Object::metrics` method and `Metrics` struct - Update `tokio` dependency to version `1.5.0` - Add `post_create`, `pre_recycle` and `post_recycle` hooks - Add `Pool::resize` method - Add `managed_reexports` macro ## [0.8.2] - 2021-07-16 - Add `deadpool-diesel` to README - Add `Sync + Send` as supertrait to `Manager` - Fix usage of `PhantomData` in `Pool` struct: `Pool is now `Sync` regardless of the wrapper. ## [0.8.1] - 2021-07-04 - Add `Object::pool` method ## [0.8.0] - 2021-05-21 - Add support for closing pools - Replace `crossbeam-queue` by `Mutex>` - Fix invalid `size` and `available` counts when recycling fails - Update `config` dependency to version `0.11` - Remove deprecated `from_env` methods - Add support for wrappers returned by the pool - Use associated types for traits ## [0.7.0] - 2020-12-26 - Update `tokio` dependency to version `1` ## [0.6.0] - 2020-11-04 - Update `tokio` dependency to version `0.3` - Update `crossbeam-queue` dependency to version `0.3` - Remove deprecated `deadpool::*` types - Add `deadpool-memcached` to README ## [0.5.2] - 2020-07-14 - Deprecate `managed::Config::from_env` - Deprecate `unmanaged::Config::from_env` ## [0.5.1] - 2020-01-18 - Add `managed::Object::take` method ## [0.5.0] - 2020-01-16 - Move current pool implementation into `managed` module - Add unmanaged version of the `Pool` which does not use a `Manager` to create and recycle objects. - Add feature flags `"managed"` and `"unmanaged"` to enable only parts of this crate. - Add `max_size` to pool `Status` - Add support for `config` crate ## [0.4.3] - 2019-12-23 - Add `std::error::Error` implementation for `PoolError` and `RecycleError`. This makes it more convenient to use the `?` operator. ## [0.4.2] - 2019-12-23 - Replace `tokio::sync::mpsc::channel` by `crossbeam_queue::ArrayQueue` which gets rid of the mutex when fetching an object from the pool. ## [0.4.1] - 2019-12-19 - Make `Pool::timeout_get` public ## [0.4.0] - 2019-12-19 - Add support for timeouts - Make fields of pool status public - Fix possible deadlock and make implementation a lot simpler by using the new tokio `Semaphore` and `Receiver::try_recv`. - Add `Pool::try_get` and `Pool::timeout_get` functions ## [0.3.0] - 2019-12-13 - Add `deadpool-lapin` to README - Add `deadpool-redis` to README - Fix possible stale state and deadlock if a future calling `Pool::get` is aborted. This is related to - Make recycling more robust by changing the `Manager::recycle` to a non consuming API. ## [0.2.3] - 2019-12-02 - Add documentation for `docs.rs` - Remove `PoolInner` and `PoolSize` struct from public interface - Improve example in `README.md` and crate root ## [0.2.2] - 2019-12-02 - Update to `tokio 0.2` ## 0.2.1 - Version skipped; only `tokio-postgres` was updated. ## [0.2.0] - 2019-11-14 - Split `deadpool` and `deadpool-postgres` in separate crates instead of one with feature flags. ## [0.1.0] - 2019-11-14 - First release [Unreleased]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.12.1...HEAD [0.12.1]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.12.0...deadpool-v0.12.1 [0.12.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.11.2...deadpool-v0.12.0 [0.11.2]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.11.1...deadpool-v0.11.2 [0.11.1]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.11.0...deadpool-v0.11.1 [0.11.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.10.0...deadpool-v0.11.0 [0.10.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.9.5...deadpool-v0.10.0 [0.9.5]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.9.4...deadpool-v0.9.5 [0.9.4]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.9.3...deadpool-v0.9.4 [0.9.3]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.9.2...deadpool-v0.9.3 [0.9.2]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.9.1...deadpool-v0.9.2 [0.9.1]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.9.0...deadpool-v0.9.1 [0.9.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.8.2...deadpool-v0.9.0 [0.8.2]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.8.1...deadpool-v0.8.2 [0.8.1]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.8.0...deadpool-v0.8.1 [0.8.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.7.0...deadpool-v0.8.0 [0.7.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.6.0...deadpool-v0.7.0 [0.6.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.5.2...deadpool-v0.6.0 [0.5.2]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.5.1...deadpool-v0.5.2 [0.5.1]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.5.0...deadpool-v0.5.1 [0.5.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.4.4...deadpool-v0.5.0 [0.4.4]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.4.3...deadpool-v0.4.4 [0.4.3]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.4.2...deadpool-v0.4.3 [0.4.2]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.4.1...deadpool-v0.4.2 [0.4.1]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.4.0...deadpool-v0.4.1 [0.4.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.3.0...deadpool-v0.4.0 [0.3.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.2.3...deadpool-v0.3.0 [0.2.3]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.2.2...deadpool-v0.2.3 [0.2.2]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.2.1...deadpool-v0.2.2 [0.2.0]: https://github.com/bikeshedder/deadpool/compare/deadpool-v0.1.0...deadpool-v0.2.0 [0.1.0]: https://github.com/bikeshedder/deadpool/releases/tag/deadpool-v0.1.0