teaql-runtime
Runtime repository and graph persistence layer for TeaQL Rust.
teaql-runtime connects TeaQL metadata, dialects, executors, repositories,
behaviors, checkers, events, and graph writes through UserContext.
What It Provides
UserContextfor metadata, resources, request locals, and runtime options- repository registry and behavior registry
- memory repository for tests and lightweight execution
- checker registry and translated validation results
- entity event sink support
- graph save planning and execution
- typed entity graph extraction
- optional
sqlxsupport for PostgreSQL and SQLite - schema bootstrap helpers for SQLite and PostgreSQL
- SQL debug logging options on
UserContext
Source Layout
The repository layer is split by concern under src/repository/:
types.rs: public repository structs and relation load plan typesexecutor.rs:QueryExecutorand graph transaction boundary typescache.rs: aggregation cache traits and in-memory cachebase.rs: metadata-backedRepositorycompile and CRUD helperscontext.rs:UserContextrepository assembly and context repository logging/cache invalidationresolved.rs: entity-scoped repository query and mutation entry pointsgraph.rs: graph planning, graph save execution, and graph node validationrelation.rs: relation plans, relation enhancement, child queries, and relation aggregateshelpers.rs: shared bucket keys, cache keys, projection helpers, and graph relation validation
Example
use ;
let mut ctx = new
.with_metadata_store
.enable_all_sql_log;
let logs = ctx.sql_logs;
assert!;
With generated code, applications typically register a generated runtime module and then use generated entity/request helpers:
let ctx = new
.with_module
.with_repository_registry;
Enable the sqlx feature when using the built-in PostgreSQL or SQLite
executors:
= { = "0.7", = ["sqlx"] }