toolu-orm-core
Core types and schema engine for toolu-orm. Provides column types, table definitions, value conversions, type-safe expression building, schema snapshotting, diffing, and SQL generation.
Stack
- Serialization: serde + serde_json (schema snapshots, journals)
- Hashing: sha2 (migration integrity)
- Database: libsql or rusqlite (feature-gated, optional)
Architecture
src/
├── lib.rs # Module exports
├── column.rs # ColumnType, ColumnDef, marker types
├── table.rs # TableDef, TableSchema trait
├── schema.rs # SchemaRegistry
├── index.rs # IndexDef
├── value.rs # Value enum + driver conversions
├── row.rs # FromRow trait (feature-gated)
├── expr/ # Expr, ExprKind, OrderBy, JoinCondition (types.rs) + per-dialect rendering (render.rs)
├── query_column.rs # Column<T>, ColumnRef, CommonOps/TextOps/NumericOps
├── connection.rs # libsql Connection wrapper (feature: libsql)
├── error.rs # DbCoreError
├── diff.rs # Schema diff → Operation list
├── journal.rs # Migration journal (entries + SHA256 hashes)
├── snapshot.rs # Schema snapshot serialization
└── sql.rs # SQL generation from Operations
Usage
use ;
use ;
use Expr;
use Value;
// Type-safe column references
const NAME: = new;
let filter = NAME.eq.and;
// Schema diffing
let ops = diff;
let sql = generate_sql;
Development