asynchronous and synchronous interfaces and persistence implementations for your OOD architecture
Go to file
Dmitriy Pleshevskiy b88cea1a82 chore: add changelogs 2021-10-22 01:28:59 +03:00
.vscode feat: add r2d2_sqlite feature 2021-10-21 22:59:59 +03:00
examples chore: rename error type and reexport error types 2021-10-21 23:56:47 +03:00
src fix: build sqlite and mysql without nightly 2021-10-22 01:16:41 +03:00
.gitignore feat: add transactions 2021-10-17 15:13:01 +03:00
CHANGELOG.md chore: add changelogs 2021-10-22 01:28:59 +03:00
Cargo.lock fix: build sqlite and mysql without nightly 2021-10-22 01:16:41 +03:00
Cargo.toml fix: build sqlite and mysql without nightly 2021-10-22 01:16:41 +03:00
README.md chore: add example to readme 2021-10-22 00:54:47 +03:00
rust-toolchain.toml feat: add transactions 2021-10-17 15:13:01 +03:00

README.md

OOD Persistence

Crates.io Documentation unsafe forbidden

Asynchronous and synchronous interfaces and persistence implementations for your OOD architecture

Installation

Add ood_persistence = { version = "0", features = ["<IMPLEMENTATION_NAME>"] } as a dependency in Cargo.toml.

NOTE: change <IMPLEMENTATION_NAME> to feature name from available list. See Cargo.toml for more information.

Cargo.toml example:

[package]
name = "my-crate"
version = "0.1.0"
authors = ["Me <user@rust-lang.org>"]

[dependencies]
ood_persistence = { version = "0", features = ["bb8_postgres"] }

In stable rust channel you can use only connection interface, but if you use nightly channel, add an additional "nightly" feature to your Cargo.toml and you can use transactions as well.

Usage

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // create pool to our database
    let pool = create_postgres_pool();
    // initialize persistence
    let persistence = ood_persistence::r2d2_postgres::new(&pool);
    // get connection to database
    let mut conn = persistence.get_connection()?;
    // we can query something
    let res: i32 = conn.inner().query_one("select 1", &[])?.get(0);
    assert_eq!(res, 1);

    Ok(())
}

See examples directory for more information.

Contributors

pleshevskiy (Dmitriy Pleshevskiy) creator, maintainer.