Crate armature_diesel

Crate armature_diesel 

Source
Expand description

§Armature Diesel

Async Diesel database integration for the Armature framework.

This crate provides connection pooling, transaction management, and seamless integration with Armature’s dependency injection system.

§Features

  • Async Connection Pools: Built on diesel-async with deadpool, bb8, or mobc
  • Multiple Backends: PostgreSQL and MySQL support
  • Transaction Management: Easy-to-use transaction helpers
  • DI Integration: Works with Armature’s dependency injection
  • Connection Health: Automatic connection validation

§Quick Start

use armature_diesel::{DieselPool, DieselConfig};

// Create configuration
let config = DieselConfig::new("postgres://user:pass@localhost/db")
    .pool_size(10)
    .connect_timeout(Duration::from_secs(5));

// Create pool
let pool = DieselPool::new(config).await?;

// Get connection
let mut conn = pool.get().await?;

// Run query
let users = users::table.load::<User>(&mut conn).await?;

§With Transactions

use armature_diesel::TransactionExt;

pool.transaction(|conn| async move {
    diesel::insert_into(users::table)
        .values(&new_user)
        .execute(conn)
        .await?;

    diesel::insert_into(profiles::table)
        .values(&new_profile)
        .execute(conn)
        .await?;

    Ok(())
}).await?;

Re-exports§

pub use diesel;
pub use diesel_async;

Modules§

deadpool
A connection pool implementation for diesel-async based on deadpool

Structs§

DieselConfig
Configuration for a Diesel database connection pool.
PgPool
PostgreSQL connection pool using deadpool.
PoolStatus
Connection pool statistics.
TransactionGuard
Transaction guard for manual transaction management.

Enums§

DieselError
Errors that can occur when using the Diesel integration.
IsolationLevel
Transaction isolation levels.

Traits§

TransactionExt
Extension trait for transaction management.

Type Aliases§

DieselPool
Default PostgreSQL pool type.
DieselResult
Result type alias for Diesel operations.