database-core
The database-agnostic interface for Fluid Attacks ETLs, in Rust: what a table
is, independent of the database it lives in. Each database has its own loader
built on it (for example snowflake-loader).
The workspace is split into a pure core and a shell that re-exports it:
crates/domain(fluidattacks-database-core-domain) — functional core with no I/O: the names of database objects (Identifier,SchemaId,TableId,ColumnId,DbTableId), the cell types (CellType,RawValue,Decimal,Numeric,FieldType/IntoValue,KeyField), the table definition (Column,Schema,Table) and thetable!macro that declares a table once.no_std.crates/shell(fluidattacks-database-core) — the crate consumers depend on; it re-exports the domain.