- 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
.
- 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.
- Fix
HookError
andHookErrorCause
in re-exports
- Add
Pool::retain
method - Fix
Pool::get_timeouts
method - Deprecate
managed::Pool::try_get
- Add
Pool::timeouts
method
PoolConfig
now implementsSerialize
- Deprecate
managed::sync
module in favor ofdeadpool-sync
crate - Extract
runtime
module as separatedeadpool-runtime
crate
- 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
- 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.
- Add
Object::pool
method
- 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
- Update
tokio
dependency to version1
- Update
tokio
dependency to version0.3
- Update
crossbeam-queue
dependency to version0.3
- Remove deprecated
deadpool::*
types - Add
deadpool-memcached
to README
- Deprecate
managed::Config::from_env
- Deprecate
unmanaged::Config::from_env
- Add
managed::Object::take
method
- 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
- Add
std::error::Error
implementation forPoolError
andRecycleError
. This makes it more convenient to use the?
operator.
- Replace
tokio::sync::mpsc::channel
bycrossbeam_queue::ArrayQueue
which gets rid of the mutex when fetching an object from the pool.
- Make
Pool::timeout_get
public
- 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
- 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.
- Add documentation for
docs.rs
- Remove
PoolInner
andPoolSize
struct from public interface - Improve example in
README.md
and crate root
- Update to
tokio 0.2
- Version skipped; only
tokio-postgres
was updated.
- Split
deadpool
anddeadpool-postgres
in separate crates instead of one with feature flags.
- First release