Expand description
Diesel persistence implementations for Hypercall.
This crate provides the concrete Diesel-based implementations of the
persistence traits defined in hypercall-db. It owns the schema definitions,
model types, and all SQL execution.
§Architecture
hypercall-db defines ORM-free traits and domain types. This crate implements
those traits using Diesel ORM. Two main entry points:
DatabaseHandler– sync r2d2 pool, implements engine-path traits (orders, instruments, tiers, settlements, journal replay, archiver). Used by the engine event loop and startup code.DieselDb– async deadpool viadiesel-async, implements API-path traits (analytics, integrity, liquidation, notifications, nonces, push, usernames). Used by the REST/WS API handlers.
§Migrations
Database migrations live in ../../migrations/ and are compiled into the binary
via diesel_migrations::embed_migrations!. The MIGRATIONS constant is
applied automatically when constructing a DatabaseHandler (unless
new_readonly or with_pool_no_migrations is used). After running
migrations, ensure_enum_values adds any new Postgres enum variants
that cannot be expressed as standard Diesel migrations.
Re-exports§
pub use database_handler::build_db_pool;pub use database_handler::DatabaseHandler;pub use database_handler::DbPool;pub use database_handler::DynConnectionManager;pub use db_auth::DbAuthConfig;pub use diesel_db::AsyncDbPool;pub use diesel_db::DieselDb;pub use transaction::DieselTransaction;
Modules§
- analytics
- Analytics trait implementations for DieselDb.
- archiver
- Diesel implementation of ArchiverReader and ArchiverWriter traits.
- bootstrap
- Bootstrap trait implementation for DieselDb.
- catalog
- CatalogReader + CatalogWriter trait implementations for DieselDb.
- competition
- CompetitionReader + CompetitionWriter trait implementations for DieselDb.
- database_
handler - Unified database handler that owns a connection pool and implements
all persistence traits from
hypercall_db. - db_auth
- diesel_
db - Async DieselDb struct with deadpool-based connection pool management.
- directive_
outbox - DirectiveOutboxReader + DirectiveOutboxWriter implementations for DatabaseHandler.
- engine_
enums - Postgres enum types for the engine journal schema.
- engine_
journal - Diesel implementation for WAL batch journal materialization.
- event_
handler - Engine event handler: persists
EngineMessagevariants to Postgres. - faucet
- FaucetWriter trait implementation for DieselDb.
- instruments
- InstrumentReader + InstrumentWriter implementations for DatabaseHandler.
- integrity
- IntegrityReader trait implementation for DieselDb.
- ledger_
ops - Ledger database operations using Diesel.
- liquidation
- LiquidationReader + LiquidationWriter trait implementations for DieselDb.
- mmp
- MmpConfigReader + MmpConfigWriter implementations for DatabaseHandler.
- models
- Diesel model structs (
Queryable,Insertable,AsChangeset) for every database table. - nonces
- NonceReader + NonceWriter trait implementations for DieselDb.
- notifications
- NotificationReader + NotificationWriter trait implementations for DieselDb.
- oracle
- OracleWriter implementation for DatabaseHandler.
- order_
status_ materialization - Materialized order state management.
- orders
- OrderReader + OrderWriter + fill ledger helper implementations for DatabaseHandler.
- pm_
settlement - push
- PushSubscriptionReader + PushSubscriptionWriter trait implementations for DieselDb.
- rds_iam
- replay
- JournalReplayReader implementation for DatabaseHandler.
- rfq
- RfqReader + RfqWriter implementations for DatabaseHandler.
- rsm_
credit - RSM credit and cash-ledger persistence trait implementations.
- schema
- Diesel schema definitions, auto-generated by
diesel print-schema. - settlement_
ops - Settlement persistence operations.
- settlements
- SettlementReader + SettlementWriter implementations for DatabaseHandler.
- snapshots
- Snapshot persistence implementations for DatabaseHandler.
- tiers
- TierReader + TierWriter implementations for DatabaseHandler.
- transaction
- Transactional trait implementation for DatabaseHandler.
- transaction_
submitter - usernames
- UsernameReader + UsernameWriter trait implementations for DieselDb.
- validator_
rsm