Skip to main content

mongreldb_core/
lib.rs

1//! MongrelDB core — a log-structured columnar store with sub-ms writes, learned
2//! indexes over a shared row-id space, page-level native encryption, an
3//! MVCC-tagged content-addressed cache, and an AI-native access layer.
4//!
5//! The crate owns the WAL + memtable + Bε-tree write path, sorted-run container
6//! formats, MVCC snapshots, page cache, encryption, compaction, and indexes.
7
8#![allow(clippy::module_inception)]
9#![recursion_limit = "2048"]
10
11pub mod auth;
12pub mod auth_state;
13pub mod backup;
14pub mod be_tree;
15pub mod cache;
16pub mod catalog;
17pub mod columnar;
18pub mod compaction;
19pub mod constraint;
20pub mod cursor;
21pub mod database;
22pub mod encryption;
23pub mod engine;
24pub mod epoch;
25pub mod error;
26pub mod external_table;
27pub mod gc;
28pub mod global_idx;
29pub mod index;
30pub mod manifest;
31pub mod memtable;
32pub mod mutable_run;
33pub mod page;
34pub mod pitr;
35pub mod pma;
36pub mod procedure;
37pub mod query;
38pub mod replication;
39pub mod reservoir;
40pub mod retention;
41pub(crate) mod row_id_set;
42pub mod rowid;
43pub mod schema;
44pub mod security;
45pub mod sorted_run;
46pub mod trace;
47pub mod trigger;
48pub mod tsv;
49pub mod txn;
50pub mod wal;
51
52pub use auth::{
53    hash_password, verify_password, ColumnAccess, ColumnOperation, Permission, Principal,
54    RoleEntry, UserEntry,
55};
56pub use backup::{verify_backup, BackupFile, BackupManifest, BackupReport};
57pub use be_tree::BeTree;
58pub use cache::PageCache;
59pub use catalog::{
60    IncrementalAggregateKind, IncrementalAggregateOutput, IncrementalAggregateView,
61    MaterializedViewEntry,
62};
63pub use columnar::{decode_column, encode_column};
64pub use cursor::{drain_cursor_to_columns, Cursor, MultiRunCursor, NativePageCursor};
65pub use database::{
66    AuthorizedReadSnapshot, CdcBatch, ChangeEvent, CheckIssue, Database, ExternalTriggerBaseWrite,
67    ExternalTriggerBridge, ExternalTriggerWrite, ExternalTriggerWriteResult, OpenOptions,
68};
69pub use encryption::{Cipher, PlaintextCipher};
70pub use engine::{
71    AggState, ApproxAgg, ApproxResult, CachedAgg, ColumnStat, IncrementalAggResult,
72    IndexBuildPolicy, NativeAgg, NativeAggResult, Table,
73};
74pub use epoch::{Epoch, EpochAuthority, EpochClock, Snapshot};
75pub use error::{MongrelError, Result};
76pub use external_table::{
77    ExternalTableDefinition, ExternalTableEntry, ModuleArg, ModuleCapabilities,
78};
79pub use gc::{CheckReport, DoctorReport, GcReport};
80pub use index::{
81    AnnIndex, BitmapIndex, ColumnLearnedRange, FmIndex, HotIndex, LearnedIndex, SparseIndex,
82};
83pub use manifest::TtlPolicy;
84pub use memtable::{Memtable, Row, Value};
85pub use mutable_run::MutableRun;
86pub use page::{CachedPage, Encoding, PageStat};
87pub use pitr::{
88    read_pitr_manifest, restore_pitr, PitrArchiveManifest, PitrArchiveReport, PitrChunkRef,
89    PitrCommitPoint, PitrCredentials, PitrTarget,
90};
91pub use procedure::{
92    ProcedureBody, ProcedureCallOutput, ProcedureCallResult, ProcedureCallRow, ProcedureCondition,
93    ProcedureEntry, ProcedureMode, ProcedureParam, ProcedureStep, ProcedureValue, StoredProcedure,
94};
95pub use query::{Condition, Query};
96pub use replication::{
97    is_replica, replica_epoch, write_replica_epoch, ReplicationBatch, ReplicationSnapshot,
98};
99pub use reservoir::Reservoir;
100pub use retention::{OwnedSnapshotGuard, SnapshotGuard, SnapshotRegistry};
101pub use rowid::{RowId, RowIdAllocator};
102pub use schema::{
103    AlterColumn, ColumnDef, ColumnFlags, DefaultExpr, IndexDef, IndexKind, Schema, TypeId,
104};
105pub use security::{
106    ColumnMask, MaskStrategy, PolicyCommand, RowPolicy, SecurityCatalog, SecurityExpr,
107};
108pub use sorted_run::{
109    read_column_dir, read_header, write_run, write_run_with, ColumnPayload, RunHeader, RunReader,
110    RunSpec, RunWriter,
111};
112pub use trace::{IndexRebuild, QueryTrace, ScanMode};
113pub use trigger::{
114    StoredTrigger, TriggerCell, TriggerCondition, TriggerConfig, TriggerDefinition, TriggerEntry,
115    TriggerEvent, TriggerExpr, TriggerProgram, TriggerRaiseAction, TriggerStep, TriggerTarget,
116    TriggerTiming, TriggerValue,
117};
118pub use txn::{IsolationLevel, OwnedRow, PutResult, UpsertAction, UpsertActionKind, UpsertResult};
119pub use wal::{AddedRun, DdlOp, Op, Record, SharedWal, Wal, WalReader, SYSTEM_TXN_ID};
120
121#[cfg(feature = "encryption")]
122pub use encryption::{AesCipher, ColumnKeyDescriptor, EncryptionDescriptor, Kek};