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
BatchInsertAPI for bulk inserts - Type Safety: Strong typing with
Valueenum 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