Skip to main content

Crate umbral_core

Crate umbral_core 

Source
Expand description

umbral internals: ORM, migrations, routing, DB backends, the Plugin trait.

Do not depend on this crate directly. Use the umbral facade.

Status: M0 shipped — Settings, db pool, web re-exports, App builder.

Re-exports§

pub use db::transaction;
pub use db::transaction_pg;
pub use db::transaction_sqlite;
pub use inventory;
pub use toml;

Modules§

api_error
ApiError — a handler-facing error any plain axum handler can return.
app
auth_contract
The authentication identity contract — who is the caller?
backend
The database backend abstraction.
backup
Backup and recovery: dump every registered model’s rows to JSON, load them back.
check
The boot-time system check framework.
cli
Plugin-contributed CLI subcommands — the M7 Plugin::commands() deferral landing.
codegen
Scaffolding primitives — how a command writes code into the user’s project.
cors
CORS configuration for [AppBuilder::cors].
db
Database pool registry and connection helpers.
errors
Custom 404 / 500 page helpers.
fixtures
Feature #74 — per-model fixture load / dump.
forms
Form parsing, validation, and HTML rendering.
inspect
inspectdb — introspect an existing database into umbral models.
middleware
A framework-level request/response middleware contract (feature #68).
migrate
The migration engine — the north star.
orm
The ORM: declarative models, typed queries, and SQL generation.
pagination
Template-rendered list-view pagination - a Paginator/Page pair.
plugin
The Plugin trait — umbral’s only extension mechanism.
ratelimit
A dependency-light, in-memory sliding-window rate limiter.
routes
Route registry — a snapshot of every URL path the framework knows about, grouped by plugin.
settings
shutdown
Process-wide graceful-shutdown coordination (Kikosi #5 — the zero-downtime drain).
signals
In-process signal registry.
slash
Trailing-slash redirect policy.
static_files
The unified static-asset pipeline’s request → file resolution.
storage
Storage: the file-bytes backend abstraction and its ambient registry.
templates
Server-side HTML rendering via minijinja.
timezone
Gap 106 — IANA timezone resolution for the marshalling layer.
transfer
Data transfer engine: a resumable, PK-preserving, streaming row copy between two umbral databases (env1 -> env2). See docs/decisions/2026-08-16-data-transfer-engine.md.
typegen
Generate TypeScript types from the model registry.
validate
Request-body validation (gaps3 #29 item 4).
web
The web layer. At M0 this is a thin re-export of axum’s primitives.