CodeVetter · Repo Unpack · Feature catalog
SeaQL/sea-orm
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.