r2d2-oracle

Crates.ior2d2-oracle
lib.rsr2d2-oracle
version0.7.0
sourcesrc
created_at2019-10-02 18:46:26.241419
updated_at2024-05-30 15:49:54.165244
descriptionOracle support for the r2d2 connection pool
homepage
repositoryhttps://github.com/rursprung/r2d2-oracle
max_upload_size
id169436
size36,794
Ralph Ursprung (rursprung)

documentation

README

r2d2-oracle

CI Crates.io Crates.io unsafe forbidden

The documentation can be found on docs.rs.

Oracle support for the r2d2 connection pool. This fits in between the r2d2 connection manager and oracle database driver crates.

Usage

See the documentation of r2d2 for the details on how to use the connection pool.

use std::thread;
use r2d2_oracle::OracleConnectionManager;

fn main() {
    let manager = OracleConnectionManager::new("user", "password", "localhost");
    let pool = r2d2::Pool::builder()
         .max_size(15)
         .build(manager)
         .unwrap();
    
    for _ in 0..20 {
        let pool = pool.clone();
        thread::spawn(move || {
            let conn = pool.get().unwrap();
            // use the connection
            // it will be returned to the pool when it falls out of scope.
        });
    }
}

If you want to use chrono data types, enable the chrono feature:

[dependencies]
r2d2-oracle = { version = "0.2.0", features = ["chrono"] }

Changelog

For the changelog please see the dedicated CHANGELOG.md.

Current Status of the Crate & Roadmap to v1.0.0

This is the initial release of the crate and has not yet been proven in production. Nevertheless: the crate is very small so not many problems are expected. The precondition for releasing v1.0.0 is that both r2d2 and oracle have released their v1.0.0.

Alternatives to r2d2-oracle

You may also want to consider the following alternatives to this crate, depending on your use-cases:

  • Starting with version 0.5.5 the oracle provides buit-in connection pooling support
  • There is an async (tokio-based) version of r2d2, bb8 and a corresponding bb8-oracle fork of r2d2-oracle exists

Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.60 and up. It might compile with older versions but that may change in any new patch release.

Commit count: 69

cargo fmt