CodeVetter
← All unpacks
CodeVetter · Repo Unpack evidence

SeaQL/sea-orm

Scanned commit db40a19a7b dated 2026-09-27 — last upstream commit. Generated by codevetter 1.15.0 on 2026-10-02.

github.com/SeaQL/sea-orm ↗ · 1593 files · 6.8 MB

SeaORM is a powerful ORM for building web services in Rust Support us with a ⭐ !

Deep analysis by cli:codex via the codex CLI on 2026-10-02 (481s) — every claim below links to its cited source files. Source inspection; upstream code and tests were not executed.

Overview

SeaORM is a Rust ORM for applications that need typed relational queries, partial updates, nested persistence, and database migrations. At commit db40a19a7bde7be8e1c4b346b1b70d72e87f0245, its async library supports SQLx-backed MySQL/MariaDB, PostgreSQL, and SQLite, alongside a separate synchronous implementation. Entity derives, schema discovery and generation, optional RBAC, and Arrow conversion extend the core library; the web servers and frontend integrations are example applications.

System map

The repository centers on a reusable Rust library, with companion tooling and independently runnable examples. Compile-time entity generation, runtime query execution, and migration execution occupy distinct boundaries. Cargo features select drivers and optional capabilities, while separate workspaces require package-specific validation.

Feature catalog

The developer-facing surface spans entity modeling, query execution, persistence, schema management, and code generation. Optional features add access control and analytical data conversion. Examples demonstrate HTTP, JSON-RPC, OpenAPI, synchronous database use, and checkpointed computation; this catalog describes inspected capabilities rather than an exhaustive inventory.

Data flow

Typed entity metadata becomes SeaQuery statements, then backend SQL and bound values, then driver results decoded into models. Connections own database handles, while selectors and ActiveModels own query and mutation state. Tooling follows separate pipelines from live schema to generated files and from migration definitions to recorded database versions.

Behavior traces

The inspected traces follow application startup, database writes and reads, CLI generation, migrations, authorization, and file-backed conversion. Each sequence identifies its relevant functions and branches. These are source-derived execution paths, not observed runtime traces.

Testing signals

Tests and CI were inspected, not executed; their existence does not establish passing results. The sampled suites combine Rust unit tests, async adapters, mock SQL assertions, live database integration, generation fixtures, and conversion tests. Feature gates and conditional CI jobs materially affect coverage, and this investigation does not establish exhaustive coverage or security validation.

Risk map

The following risks are source observations or explicitly labeled hypotheses, not confirmed vulnerabilities. Sensitive boundaries include database configuration, SQL construction, authorization snapshots, filesystem generation, and subprocess execution. Migration and synchronous-generation utilities have broad side effects that deserve particular attention during future authorized work.

Extension points

The main extension mechanisms are Rust traits, derive attributes, callback factories, and entity registration. Tooling adds command enums and generation backends, while examples expose framework-specific route tables. Extensions should preserve the common connection boundary and account for optional features and synchronous parity.

Contributor handoff

Begin with manifests, the library exports, and the exact feature-specific implementation involved in the task. Tests and CI were inspected, not executed, and this bounded brief supplies no passing validation result. Future authorized edits should respect generation boundaries, isolated database targets, and distinct contracts for schema sync, nested persistence, and authorization.

Languages

LanguageFilesShare of source
Rust122890%
TOML1038%
Markdown94docs/config
YAML23docs/config
CSS17docs/config
Shell101%
JSON8docs/config
TypeScript71%

Start reading here

Probable source entrypoint: Cargo.toml — inferred from the directory tree and manifest, not the upstream docs.

Source roots

src/ (148 files)

Repository structure

Top-level pathFiles
examples/526
sea-orm-sync/318
sea-orm-codegen/202
tests/157
src/148
issues/77
sea-orm-macros/43
sea-orm-migration/31

Docs found: CLAUDE.mdCONTRIBUTING.mdREADME.md

Package

Cargo.toml — sea_orm v2.0.4, 40 declared dependencies.

], optionalasync-streamasync-traitbigdecimalchronoderive-wherederive_moredotenvfutures-utilinventoryipnetworkitertools

CI & config entrypoints

Structural health signals

Average score 5.7/10 across 96 analyzed source files; 81 hotspots surfaced.

These are deterministic review leads — size, churn, and structural signals — not proof of a bug in this project.

Recent history