Overview
A3S ORM is a type-safe Rust SQL query builder inspired by Kysely. Table declarations constrain columns, values, assignments, and decoded results while the actual SQL, bound parameters, and execution point remain visible.
It is not an Active Record framework. Records do not own persistence methods, field access does not execute queries, and runtime values never enter SQL text.
Core data flow
Each layer owns one category of responsibility:
Guarantees you can rely on
- A column can only be used with its owning table or an explicit alias.
- Comparisons, assignments, and inserted values must use compatible Rust and SQL value families.
- Dynamic values can only enter compiled output as bound parameters.
- Unsupported dialect capabilities return errors instead of approximate syntax.
- CTEs, subqueries, windows, and outer queries share one parameter sequence.
Databaseseparates build, execution, decoding, no-row, and too-many-row failures.
v0.2.0 does not include typed UPDATE CTEs, UPDATE FROM, or set_expression. Use reviewed static sql_query statements for atomic worker claims, or upgrade to v0.3.0.
Dialects and runtimes
SQLite is the default feature. PostgreSQL uses a bounded Deadpool pool and adds transaction policy, TLS, health snapshots, and retry classification. MySQL currently provides compilation only.
Next steps
Read installation and features, then complete the quick start. Review architecture and production boundaries before deployment.