All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Update
itertools
dependency to version0.13.0
0.12.1 - 2024-05-07
- Add WASM support
0.12.0 - 2024-05-04
- Add
Send
toManager::Type
andManager::Error
associated types - Add
Send
toManager::create
andManager::recycle
return types
0.11.2 - 2024-04-10
- Make
Timeouts::new
andTimeouts::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
intoavailable
andwaiting
. - Add
QueueMode
configuration option for choosing between aFIFO
(default) andLIFO
queue. - Remove
HookError::Continue
andHookError::Abort
variants replacing it with the contents ofHookErrorCause
. Returning aHookError
from apost_create
hook causes thePool::get
operation to fail while returning it from apre_recycle
orpost_recycle
hook the operation continues. - Add
metrics
argument toManager::recycle
method. - Remove deprecated
managed::sync
module. - Remove deprecated
managed::Pool::try_get
method. - Bump up MSRV to
1.63
to match the one oftokio
.
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
andHookErrorCause
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 implementsSerialize
0.9.1 - 2021-10-26
- Deprecate
managed::sync
module in favor ofdeadpool-sync
crate - Extract
runtime
module as separatedeadpool-runtime
crate
0.9.0 - 2021-10-18
- Breaking: Replace
config
feature withserde
(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 ofOption<Runtime>
- Remove
Pool::new
method - Add
Pool::builder
method andPoolBuilder
struct - Add
Object::metrics
method andMetrics
struct - Update
tokio
dependency to version1.5.0
- Add
post_create
,pre_recycle
andpost_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 toManager
- Fix usage of
PhantomData
inPool
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
byMutex<VecDeque<_>>
- Fix invalid
size
andavailable
counts when recycling fails - Update
config
dependency to version0.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 version1
0.6.0 - 2020-11-04
- Update
tokio
dependency to version0.3
- Update
crossbeam-queue
dependency to version0.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 aManager
to create and recycle objects. - Add feature flags
"managed"
and"unmanaged"
to enable only parts of this crate. - Add
max_size
to poolStatus
- Add support for
config
crate
0.4.3 - 2019-12-23
- Add
std::error::Error
implementation forPoolError
andRecycleError
. This makes it more convenient to use the?
operator.
0.4.2 - 2019-12-23
- Replace
tokio::sync::mpsc::channel
bycrossbeam_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
andReceiver::try_recv
. - Add
Pool::try_get
andPool::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 tokio-rs/tokio#1898 - 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
andPoolSize
struct from public interface - Improve example in
README.md
and crate root
0.2.2 - 2019-12-02
- Update to
tokio 0.2
- Version skipped; only
tokio-postgres
was updated.
0.2.0 - 2019-11-14
- Split
deadpool
anddeadpool-postgres
in separate crates instead of one with feature flags.
0.1.0 - 2019-11-14
- First release