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 queries without 'fighting the ORM'.

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()
}
}

Who's using SeaORM?


The following products are powered by SeaORM:

A lightweight web security auditing toolkit

A Bitcoin lightning node implementation

The enterprise ready webhooks service


For more projects, see Built with SeaORM.

Meet Terres, our official mascot

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