Skip to main content

🐚 SeaORM is a relational ORM to help you build web services in Rust with the familiarity of dynamic languages.


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


Built upon SeaQuery, SeaORM allows you to build complex queries without 'fighting the ORM'.


Use mock connections to write unit tests for your logic.

Service Oriented

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

Comparison with Diesel

Pure RustNative Driver
Schema First
MySQL / Postgres / SQLite

A quick taste of SeaORM

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

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.