Skip to main content

🐚 SeaORM is a relational ORM to help you build web services in Rust


Async

Relying on SQLx, SeaORM is a new library with async support from day 1.

Dynamic

Built upon SeaQuery, SeaORM allows you to build complex dynamic queries.

Testable

Use mock connections and/or SQLite to write tests for your application logic.

Service Oriented

Quickly build services that join, filter, sort and paginate data in REST, GraphQL and gRPC APIs.

A quick taste of SeaORM

use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "cake")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub name: String,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {
#[sea_orm(has_many = "super::fruit::Entity")]
Fruit,
}
impl Related<super::fruit::Entity> for Entity {
fn to() -> RelationDef {
Relation::Fruit.def()
}
}

SeaORM ➕ GraphQL = 🧭 Seaography

With Seaography, you can easily launch a GraphQL server from SeaORM entities!

Gold Sponsors


Silver Sponsors

Meet Terres, our official mascot

A friend of Ferris, Terres the hermit crab is a member of the Rustacean family.