🚀 Visit the Official Website & Documentation Hub 🚀
Built on top of sqlx and procedural macros, Rullst ORM brings the delightful, fluent syntax of Active Record frameworks (like Laravel's Eloquent) directly to the high-performance Rust ecosystem.
🚀 Why Rullst ORM?
In traditional Rust database handling, you have to write raw SQL queries, manage connection pools manually, and bind variables repetitively. Rullst ORM abstracts the heavy lifting behind a single #[derive(Orm)] macro, generating hundreds of safe, chainable query methods at compile time.
Key Features:
- Zero-Boilerplate CRUD: Insert, update, delete, and find records instantly.
- Fluent Query Builder: Chain
.where_eq(),.limit(), and.order_by()effortlessly. - Eager Loading: Solve N+1 problems with robust
has_many,belongs_to, andmorph_manyrelations. - Built-in Multi-Tenancy: Automatically scope all queries by tenant ID.
- Automated Audit Logs: Track
old_valuesandnew_valueshistory natively. - Scout Search: Seamlessly sync models to full-text search engines.
- Enterprise Ready: Read/write replica splitting, query chunking, and Redis caching built-in.
🛠️ Quick Start
Installation
Add the library to your Cargo.toml:
Zero-to-Hero Example
use ;
// 1. Just add the Orm macro to your struct!
async
📚 Documentation
The documentation is kept lean and straight to the point. Dive into the modules below to master Rullst ORM:
- 1. Basics & Query Builder: Connecting to the DB, filtering, sorting, and raw bindings.
- 2. Relationships: Has Many, Belongs To, Polymorphic relations, and Eager Loading.
- 3. Advanced Features: Multi-Tenancy, Audit Trails, Redis Caching, and Observers.
- 4. Migrations & Schema: Building tables programmatically and using the Artisan CLI.
🛡️ Security
Rullst ORM employs rigorous defenses against SQL Injection. All dynamic builder methods (like .where_eq()) automatically escape values using sqlx prepared statement bindings ($1 or ?). Raw queries (.where_raw()) actively force developers to provide an array of bindings directly in the function signature. Furthermore, all structural identifiers (table and column names) are validated strictly at runtime against a whitelist regex.
📄 License
This project is licensed under the MIT License.