OSS TanbouSign in with GitHub

manage asynchronous queries, relations, and migrations with a relational ORM for Rust

OSS scale score 261.1OSS health 100
About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
9,914
Primary language
Rust
License
Apache-2.0
Repository last updated
Oct 5, 2026
On this page

Overview

SeaORM is a relational ORM for building Rust web services. It provides asynchronous queries, entities and relations, ActiveModel persistence, migrations, and raw SQL across MySQL, MariaDB, PostgreSQL, and SQLite.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Model one-to-one, one-to-many, many-to-many, and self-referencing relations

SeaORM models relations at the Entity level. The 2.0 dense entity format can keep relation declarations with the model, and the CLI can generate entities from an existing database.

Sources: [2]

Load and persist nested object graphs with higher-level APIs

Smart Entity Loader chooses joins or data-loader queries based on relation shape to avoid N+1 patterns. ActiveModel builders can persist nested object graphs while SeaORM resolves dependency order.

Sources: [2]

Best fit

Fits REST, GraphQL, and gRPC backends that want one database abstraction

It suits Rust services that want filtering, pagination, nested queries, migrations, and raw SQL in one ORM. The repository includes integrations with Axum, Actix, GraphQL, Tonic, and other frameworks.

Sources: [2]

Before adoption

Regression-test relation and schema-sync behavior across 2.0 patch updates

Version 2.0.4 fixes linked-join alias and condition handling as well as MySQL schema-sync behavior. Applications using complex relations or entity-first schema sync should verify generated SQL and migration outcomes when upgrading.

Sources: [3]

Official sources

  1. [1]SeaQL/sea-orm — GitHub repository(2026-10-06)
  2. [2]SeaORM 2.0.4 — README(2026-10-06)
  3. [3]SeaORM 2.0.4 release(2026-10-06)
Supplemental curator note

SeaORM fits Rust backends that want a higher-level entity, relation, and migration layer on top of SQLx. Version 2.0 expands entity-first and nested-persistence workflows, so 1.x migrations should review generated entities and relation definitions carefully.

Try it in 3 steps

  1. 1

    Clone the reviewed SeaORM release

    Clone the reviewed SeaORM 2.0.4 tag. The quickstart requires Rust 1.85 or newer.

    git clone --depth 1 --branch 2.0.4 https://github.com/SeaQL/sea-orm.git
  2. 2

    Enter the Quick Start project

    Enter the official single-file quickstart. It uses an in-memory SQLite database, so no database server setup is required.

    cd sea-orm/examples/quickstart
  3. 3

    Run the official Quick Start

    Run the example covering entities, relations, schema sync, CRUD, and nested persistence.

    cargo run
Check the official README

Growth

Growth trends · Last 30 days

9,914 Stars

Trend data is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • database
  • hacktoberfest
  • loco
  • mariadb
  • mysql
  • orm
  • postgres
  • rust
  • sql
  • sqlite
  • sqlx
  • tokio
Stars
9,914
Forks
738
Watchers
43
Open issues
231
Contributors
288
Owner type
Organization
Primary language
Rust
License
Apache-2.0
Repository last updated
Oct 5, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?