mobc 0.8.5

A generic connection pool with async/await support
Documentation
# 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`