# Feature catalog — SeaQL/sea-orm

> Canonical page: https://codevetter.com/unpack/sea-orm/feature-catalog

# Feature catalog — SeaQL/sea-orm

Scanned commit db40a19a7bde7be8e1c4b346b1b70d72e87f0245 (2026-09-27). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

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.
- ActiveModel supports insert, update, save, and delete with lifecycle hooks; nested relation state distinguishes untouched relations, additive child writes, and replacement that deletes omitted children. — [src/entity/active_model.rs#L225-L235](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/entity/active_model.rs#L225-L235) [src/entity/active_model.rs#L347-L403](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/entity/active_model.rs#L347-L403) [src/entity/active_model.rs#L448-L457](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/entity/active_model.rs#L448-L457) [src/entity/active_model_ex.rs#L25-L61](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/entity/active_model_ex.rs#L25-L61)
- Select APIs offer optional or required single-row results, vectors, and streams; pagination supports LIMIT/OFFSET pages and keyset cursors with before/after boundaries and key-arity validation. — [src/executor/select.rs#L864-L906](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/executor/select.rs#L864-L906) [src/database/connection.rs#L67-L94](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/database/connection.rs#L67-L94) [src/executor/paginator.rs#L53-L99](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/executor/paginator.rs#L53-L99) [src/executor/cursor.rs#L67-L114](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/executor/cursor.rs#L67-L114)
- Relation APIs cover has-one, has-many, junction-table many-to-many, and self-reference; LoaderTrait batches related queries, while raw_sql! constructs a Statement containing separate SQL and values for three supported dialects. — [CLAUDE.md#L41-L63](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/CLAUDE.md#L41-L63) [src/query/loader.rs#L26-L32](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/query/loader.rs#L26-L32) [src/query/loader.rs#L89-L122](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/query/loader.rs#L89-L122) [sea-orm-macros/src/raw_sql.rs#L24-L47](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-macros/src/raw_sql.rs#L24-L47)
- SchemaBuilder offers initial apply and additive experimental sync; migration commands include init, generate, fresh, refresh, reset, status, up with optional steps, and down defaulting to one step. — [src/schema/builder.rs#L77-L92](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/schema/builder.rs#L77-L92) [src/schema/builder.rs#L254-L270](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/schema/builder.rs#L254-L270) [sea-orm-cli/src/cli.rs#L108-L164](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-cli/src/cli.rs#L108-L164)
- generate entity exposes table selection, hidden-table inclusion, schema selection, Serde controls, custom derives and attributes, Seaography helpers, experimental preservation, and optional Mermaid output; EntityWriter supports compact, expanded, frontend, and dense formats. — [sea-orm-cli/src/cli.rs#L166-L204](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-cli/src/cli.rs#L166-L204) [sea-orm-cli/src/cli.rs#L247-L273](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-cli/src/cli.rs#L247-L273) [sea-orm-cli/src/cli.rs#L309-L388](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-cli/src/cli.rs#L309-L388) [sea-orm-codegen/src/entity/writer.rs#L71-L109](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-codegen/src/entity/writer.rs#L71-L109)
- Optional RBAC loads permission data into an engine and produces user-bound restricted connections; authorization considers inherited roles, explicit user overrides, exact grants, and wildcard permissions/resources. — [src/database/db_connection.rs#L615-L648](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/database/db_connection.rs#L615-L648) [src/rbac/engine/mod.rs#L274-L335](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/src/rbac/engine/mod.rs#L274-L335) [tests/rbac_tests.rs#L83-L107](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/tests/rbac_tests.rs#L83-L107)
- Arrow-enabled entities convert ActiveModels to and from RecordBatch; the synchronous Parquet example writes and reads a file before inserting restored rows into SQLite, and pi_spigot exposes digit count, checkpoint interval, and database-path options. — [sea-orm-sync/examples/parquet_example/src/main.rs#L59-L101](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-sync/examples/parquet_example/src/main.rs#L59-L101) [sea-orm-sync/examples/parquet_example/src/main.rs#L114-L121](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-sync/examples/parquet_example/src/main.rs#L114-L121) [sea-orm-sync/examples/pi_spigot/src/main.rs#L5-L34](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/sea-orm-sync/examples/pi_spigot/src/main.rs#L5-L34)
- Inspected examples provide Actix post-list/create/edit/delete pages, JSON-RPC Post.List/Insert/Update/Delete methods, and Rocket OpenAPI documentation through Swagger UI and RapiDoc; README also enumerates Axum, GraphQL, Loco, Poem, Salvo, Tonic, and Seaography integrations. — [examples/actix_example/api/src/lib.rs#L37-L89](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/examples/actix_example/api/src/lib.rs#L37-L89) [examples/actix_example/api/src/lib.rs#L92-L153](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/examples/actix_example/api/src/lib.rs#L92-L153) [examples/jsonrpsee_example/api/src/lib.rs#L22-L39](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/examples/jsonrpsee_example/api/src/lib.rs#L22-L39) [README.md#L42-L53](https://github.com/SeaQL/sea-orm/blob/db40a19a7bde7be8e1c4b346b1b70d72e87f0245/README.md#L42-L53)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
