emixseaorm

Crates.ioemixseaorm
lib.rsemixseaorm
version0.6.0
created_at2026-01-11 15:55:06.739531+00
updated_at2026-01-11 15:55:06.739531+00
descriptionSeaORM repositories, filters, and migrations following EssentialMix conventions.
homepage
repositoryhttps://github.com/asm2025/essentialmix-rs
max_upload_size
id2036001
size66,426
asm (asm2025)

documentation

README

emixseaorm

emixseaorm mirrors the repository abstractions from the Diesel crate while speaking SeaORM. It keeps filtering, pagination, and relationship handling consistent across database backends.

Feature Flags

  • sqlite, postgres, mysql: Pick your database driver.
  • mariadb: Alias for the MySQL stack.
  • full: Enable every supported backend.
[dependencies]
emixseaorm = { path = "../../crates/db/seaorm", features = ["sqlite"] }

Quick Example

use emixseaorm::prelude::*;
use emixseaorm::repositories::{ClosureFilter, TFilterCondition};
use sea_orm::{Condition, EntityTrait};
use entity::posts; // generated by sea-orm-cli

let filter = ClosureFilter::new(|| Condition::all().add(posts::Column::Published.eq(true)));

let query = filter.apply(posts::Entity::find());
let published = query.all(&db).await?;
  • Combine TFilterCondition and TFilterRelatedCondition to express joins.
  • Reuse emixdb::dto::{Pagination, ResultSet} for consistent API responses.
Commit count: 272

cargo fmt