docs.rs failed to build tideorm-0.4.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
tideorm-0.9.13
TideORM
A developer-friendly ORM for Rust with clean, expressive syntax.
Features
- Clean Model Definitions - Simple
#[tideorm::model]attribute macro - SeaORM-Style Relations - Define relations as struct fields
- Async-First - Built for modern async/await workflows
- Auto Schema Sync - Automatic table management during development
- Type Safe - Full Rust type safety with zero compromises
- Multi-Database - PostgreSQL, MySQL, and SQLite support
- Batteries Included:
- Fluent Query Builder with Window Functions & CTEs
- Database Migrations & Seeding
- Model Validation System
- Translations (i18n) for multilingual content
- File Attachments with metadata
- Full-Text Search with highlighting
- Soft Deletes & Callbacks
- Transaction Support
Quick Start
use *;
async
Model Relations
TideORM supports SeaORM-style relations defined as struct fields:
// Loading relations
let user = find.await?.unwrap;
let posts = user.posts.load.await?; // Vec<Post>
let profile = user.profile.load.await?; // Option<Profile>
let post = find.await?.unwrap;
let author = post.author.load.await?; // Option<User>
// Check if relation exists
let has_posts = user.posts.exists.await?; // bool
let post_count = user.posts.count.await?; // u64
// Load with constraints
let recent_posts = user.posts.load_with.await?;
Installation
[]
# PostgreSQL (default)
= { = "0.3", = ["postgres"] }
# MySQL
= { = "0.3", = ["mysql"] }
# SQLite
= { = "0.3", = ["sqlite"] }
Feature Flags
| Feature | Description |
|---|---|
postgres |
PostgreSQL support (default) |
mysql |
MySQL/MariaDB support |
sqlite |
SQLite support |
runtime-tokio |
Tokio runtime (default) |
runtime-async-std |
async-std runtime |
Relation Types
| Type | Description | Example |
|---|---|---|
HasOne<T> |
One-to-one relationship | User has one Profile |
HasMany<T> |
One-to-many relationship | User has many Posts |
BelongsTo<T> |
Inverse of HasOne/HasMany | Post belongs to User |
HasManyThrough<T, P> |
Many-to-many via pivot | User has many Roles through UserRoles |
MorphOne<T> |
Polymorphic one-to-one | Post/Video has one Image |
MorphMany<T> |
Polymorphic one-to-many | Post/Video has many Comments |
Documentation
For detailed documentation on all features, see DOCUMENTATION.md.
Key sections:
- Configuration - Database connections and pool settings
- Model Definition - Defining your models
- Query Builder - Building complex queries
- OR Conditions - Fluent OR API with begin_or/end_or
- CRUD Operations - Create, Read, Update, Delete
- Soft Deletes - Soft delete support
- Transactions - Transaction handling
- Callbacks - Lifecycle hooks
- File Attachments - Manage file relationships
- Translations (i18n) - Multilingual content
- Validation - Data validation rules
- Full-Text Search - Search with highlighting
- Multi-Database - Cross-database compatibility
Examples & Testing
Run an example:
Run tests:
See the examples directory and DOCUMENTATION.md for more.
Rusty Rails Project
TideORM is part of the larger Rusty Rails project, which aims to bridge the gap between Rust and Ruby/Ruby on Rails ecosystems. We're actively working on recreating Ruby libraries in Rust to make working with Rust more easy and fun for new developers.
Related Projects
- More Rust libraries coming soon!
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with love by the Rusty Rails team