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-asyncwithdeadpool,bb8, ormobc - 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§
Structs§
- Diesel
Config - Configuration for a Diesel database connection pool.
- PgPool
- PostgreSQL connection pool using deadpool.
- Pool
Status - Connection pool statistics.
- Transaction
Guard - Transaction guard for manual transaction management.
Enums§
- Diesel
Error - Errors that can occur when using the Diesel integration.
- Isolation
Level - Transaction isolation levels.
Traits§
- Transaction
Ext - Extension trait for transaction management.
Type Aliases§
- Diesel
Pool - Default PostgreSQL pool type.
- Diesel
Result - Result type alias for Diesel operations.