13 stable releases (3 major)

4.1.0 Mar 21, 2024
4.0.1 Mar 14, 2023
4.0.0 Feb 28, 2023
3.0.2 Sep 10, 2022
1.0.5 Jun 20, 2021

#1305 in Database interfaces

Download history 43/week @ 2024-02-19 22/week @ 2024-02-26 13/week @ 2024-03-11 156/week @ 2024-03-18 107/week @ 2024-04-01

263 downloads per month
Used in 2 crates

MIT license

9KB
91 lines

License Cargo Documentation

Simple static diesel r2d2 connection pooling.

ENV Configuration

  • DATABASE_URL sets connection url

  • MAX_DB_CONNECTIONS sets max connections within connection pool

The dotenv feature flag enables dotenv loading during pre-main static initialization via dotenvy.


lib.rs:

Static diesel r2d2 connection pooling with env configuration

Composible connection urls are provided by environment variables using env-url using the DATABASE prefix:

 | ENV                     |                            |
 | -----------------------:|:--------------------------:|
 | DATABASE_URL            | set connection url         |
 | DATABASE_HOST           | set url host               |
 | DATABASE_PORT           | set url port               |
 | DATABASE_PATH           | set selected database      |
 | DATABASE_USERINFO       | set connnection userinfo   |

MAX_DB_CONNECTIONS env sets max connections within connection pool

The dotenv feature flag enables automatic at-most-once dotenv loading via dotenvy. This is necessary because pool statics are initialized pre-main via static_init.

use diesel_connection::{pg::get_connection, PoolError};

#[actix_rt::main]
async fn main() -> Result<(), PoolError> {
  let conn = get_connection()?;
}

Dependencies

~6–16MB
~219K SLoC