Toasty is an async ORM for Rust that supports both SQL and NoSQL databases including SQLite, Turso, PostgreSQL, MySQL, and DynamoDB.
The tool addresses the challenge of building applications that work across different database systems by refusing to hide database-specific capabilities. Rather than abstracting away differences, Toasty exposes features based on the target database, allowing developers to leverage each database's strengths while avoiding inefficient queries. You define your data model using Rust structs with the `#[derive(toasty::Model)]` derive macro, and the ORM generates appropriate query methods based on what the target database can efficiently execute. For SQL databases, arbitrary query constraints may be allowed, while for NoSQL systems like DynamoDB, only constraints matching the database's indexed access patterns are generated.
Toasty suits projects that need to work with multiple database backends or want to avoid the performance pitfalls of over-abstracted ORMs. It is particularly valuable when you want to decouple your application data model from the underlying database schema while still maintaining control over how that mapping works. The tool allows customization through annotations to control how the application model maps to the database schema. Choose Toasty if you prefer an ORM that respects database differences rather than hiding them, and if you want compile-time generation of safe query methods tailored to your specific database.
The project maintains a public roadmap documenting development priorities, which are shaped by user feedback and contributions. The contribution process distinguishes between small fixes that can proceed directly to pull requests and larger changes that follow a propose-roadmap-design-implement flow. The team actively solicits issue reports and pull requests when users encounter missing features or rough edges.