Skip to main content

Crate rdbi

Crate rdbi 

Source
Expand description

rdbi - Rust Database Interface

A database abstraction layer built on mysql_async with derive macros for mapping between Rust structs and database rows.

§Features

  • Clean Query API: Fluent query builder with .bind() chaining
  • Derive Macros: #[derive(FromRow, ToParams)] for automatic mapping
  • Batch Operations: Clean BatchInsert API for bulk inserts
  • Type Safety: Strong typing with Value enum for all database types

§Example

use rdbi::{Pool, Query, FromRow, ToParams};

#[derive(FromRow, ToParams)]
pub struct User {
    #[rdbi(skip_insert)]
    pub id: i64,
    pub username: String,
    pub email: String,
}

async fn find_user(pool: &impl Pool, id: i64) -> rdbi::Result<Option<User>> {
    Query::new("SELECT * FROM users WHERE id = ?")
        .bind(id)
        .fetch_optional(pool)
        .await
}

Re-exports§

pub use batch::BatchInsert;
pub use error::Error;
pub use error::Result;
pub use mysql::MySqlPool;
pub use mysql::MySqlPoolBuilder;
pub use mysql::MySqlRow;
pub use mysql::MySqlTransaction;
pub use query::DynamicQuery;
pub use query::Query;
pub use traits::ExecuteResult;
pub use traits::FromRow;
pub use traits::FromValue;
pub use traits::IsolationLevel;
pub use traits::Pool;
pub use traits::Row;
pub use traits::RowExt;
pub use traits::ToParams;
pub use traits::ToValue;
pub use traits::Transaction;
pub use traits::Transactional;
pub use value::Value;

Modules§

batch
Batch insert operations for rdbi
error
Error types for rdbi
mysql
MySQL implementation for rdbi
query
Query builder for rdbi
traits
Core traits for rdbi
value
Dynamic Value type for database values

Macros§

in_transaction
Execute a block within a transaction, auto-committing on Ok and rolling back on Err.
in_transaction_with
Execute a block within a transaction with a specified isolation level.
with_connection
Execute a block with a connection but without transaction wrapping.

Derive Macros§

FromRow
Derive macro for mapping database rows to Rust structs.
ToParams
Derive macro for converting Rust structs to query parameters.