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.

Service Oriented

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

Production Ready

SeaORM is feature-rich, well-tested and used in production by companies and startups.

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 quickly launch a GraphQL server from SeaORM entities!

SeaORM βž• React = πŸ–₯️ SeaORM Pro

With SeaORM Pro, you can easily launch an admin panel for your application, frontend development skills not required!

Silver Sponsors

We’re immensely grateful to our sponsors: Digital Ocean, for sponsoring our servers. And JetBrains, for sponsoring our IDE.

Meet Terres, our official mascot

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