# CHANGELOG
See [Releases](https://github.com/importcjj/mobc/releases) for the latest change log.
## v0.8.1
- Fix typo's in readme
- Update mobc-postgres and mobc-redis to use latest version
## v0.8.0
- Replaces channels with Sempahores
- Adds metrics
## v0.7.3 2021-6-25
- Support the actix-rt v1.0.
## v0.7.2 2021-4-2
- Retry when connection check fails on checkout
## v0.7.1 2021-3-12
- Optimize the internal get requests queue.
## v0.7.0 2021-1-19
- Compatible with Tokio 1.0
## v0.5.12 2020-07-08
- Add a new method `into_inner` to `connection` to unwrap the raw connection.
## v0.5.11 2020-6-17
- Upgrade the `future-timer`.
## v0.5.10 2020-6-3
- Add a sync hook `validate` in the `Manager` trait to _quickly_ determine connections are still valid when check-in
## v0.5.9 2020-6-3
- Fix get timeout.
## v0.5.8(yanked) 2020-6-1
- Add a hook to determine connections are valid when check-in.
## v0.5.7 2020-03-28
- Fix PANIC: overflow when subtracting duration from instant.
## v0.5.6 2020-03-26
- Fixes to health checks, add a check interval
## v0.5.5 2020-03-24
- Add a new option to set connection's max idle lifetime.
## v0.5.4 2020-03-17
- Do not run the `check` if `health_check` is false.
## v0.5.3 2020-01-17
- Fix performance regression.
## v0.5.2 2020-01-17
- Do health check for the connection before return it.
- Add configure item `health_check`.
- Impl Debug for State.
- Add method is_brand_new to Connection, which returns true if the connection is newly established.
- Skip health check of those new connections.
## v0.5.1 2020-01-07
- Switch to `async-trait`
- Switch to `futures-timer`
- Add more examples
## v0.4.1 2019-12-29
#### Add
- Export `spawn`;
## v0.4.0 2019-12-24
#### Fix
- Tix tests
## v0.4.0-alpha.4 2019-12-24
#### Add
* `Pool.set_max_open_conns` - Sets the maximum number of connections managed by the pool.
* `Pool.set_max_idle_conns` - Sets the maximum idle connection count maintained by the pool.
* `Pool.set_conn_max_lifetime` - Sets the maximum lifetime of connections in the pool.
## v0.4.0-alpha.3 2019-12-24
#### Update
- When specifying a timeout configuration, `None` means that a get connection will never timeout.
## v0.4.0-alpha.2 2019-12-23
#### Fixes
- Fix docs
## v0.4.0-alpha.1 2019-12-23
Refactored most of the code, but it was all tested. I'm sorry, some API changes, but in exchange for better experience and performance.
#### Changes
- ConnectionManager is changed to Manager and simplified.
- `get_executor` are removed.
- `has_broken` are removed.
- `is_valid` to `check`
- Add a provided method `spawn_task`. You might use it when using mobc in runtimes other than tokio-0.2 and async-std.
- The connection pool now initializes without creating a new database connection, which saves a lot of time and resources. So it becomes a synchronization API.
- `Pool.state()` will now return more detailed statistics.
- Some configuration items are changed.
- `min_idle` to `max_idle`, which means that idle connections over this number will be closed
- `max_size` to `max_open`. If you set it to 0, the pool will create unlimited new connections if necessary. However, these connections are still limited by `max_idle` when idle
- `Pool.try_get` are removed.
## v0.3.3 2019-12-23
#### Fixes
- Fix Connection recycle.
- Panics if `min_idle` is 0
## v0.3.2 2019-12-10
#### Fixes
- Timeout caused by reaping
## v0.2.11 2019-12-10
#### Fixes
- Timeout caused by reaping
## v0.3.1 2019-12-05
#### Fixes
- Documentation of `mobc::Builder`