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 be_tree;
13pub mod cache;
14pub mod catalog;
15pub mod columnar;
16pub mod compaction;
17pub mod constraint;
18pub mod cursor;
19pub mod database;
20pub mod encryption;
21pub mod engine;
22pub mod epoch;
23pub mod error;
24pub mod external_table;
25pub mod gc;
26pub mod global_idx;
27pub mod index;
28pub mod manifest;
29pub mod memtable;
30pub mod mutable_run;
31pub mod page;
32pub mod pma;
33pub mod procedure;
34pub mod query;
35pub mod reservoir;
36pub mod retention;
37pub(crate) mod row_id_set;
38pub mod rowid;
39pub mod schema;
40pub mod sorted_run;
41pub mod trace;
42pub mod trigger;
43pub mod tsv;
44pub mod txn;
45pub mod wal;
46
47pub use auth::{hash_password, verify_password, Permission, Principal, RoleEntry, UserEntry};
48pub use be_tree::BeTree;
49pub use cache::PageCache;
50pub use columnar::{decode_column, encode_column};
51pub use cursor::{drain_cursor_to_columns, Cursor, MultiRunCursor, NativePageCursor};
52pub use database::{
53    CheckIssue, Database, ExternalTriggerBaseWrite, ExternalTriggerBridge, ExternalTriggerWrite,
54    ExternalTriggerWriteResult,
55};
56pub use encryption::{Cipher, PlaintextCipher};
57pub use engine::{
58    AggState, ApproxAgg, ApproxResult, CachedAgg, ColumnStat, IncrementalAggResult,
59    IndexBuildPolicy, NativeAgg, NativeAggResult, Table,
60};
61pub use epoch::{Epoch, EpochAuthority, EpochClock, Snapshot};
62pub use error::{MongrelError, Result};
63pub use external_table::{
64    ExternalTableDefinition, ExternalTableEntry, ModuleArg, ModuleCapabilities,
65};
66pub use gc::{CheckReport, DoctorReport, GcReport};
67pub use index::{
68    AnnIndex, BitmapIndex, ColumnLearnedRange, FmIndex, HotIndex, LearnedIndex, SparseIndex,
69};
70pub use memtable::{Memtable, Row, Value};
71pub use mutable_run::MutableRun;
72pub use page::{CachedPage, Encoding, PageStat};
73pub use procedure::{
74    ProcedureBody, ProcedureCallOutput, ProcedureCallResult, ProcedureCallRow, ProcedureCondition,
75    ProcedureEntry, ProcedureMode, ProcedureParam, ProcedureStep, ProcedureValue, StoredProcedure,
76};
77pub use query::{Condition, Query};
78pub use reservoir::Reservoir;
79pub use retention::{OwnedSnapshotGuard, SnapshotGuard, SnapshotRegistry};
80pub use rowid::{RowId, RowIdAllocator};
81pub use schema::{AlterColumn, ColumnDef, ColumnFlags, IndexDef, IndexKind, Schema, TypeId};
82pub use sorted_run::{
83    read_column_dir, read_header, write_run, write_run_with, ColumnPayload, RunHeader, RunReader,
84    RunSpec, RunWriter,
85};
86pub use trace::{IndexRebuild, QueryTrace, ScanMode};
87pub use trigger::{
88    StoredTrigger, TriggerCell, TriggerCondition, TriggerConfig, TriggerDefinition, TriggerEntry,
89    TriggerEvent, TriggerExpr, TriggerProgram, TriggerRaiseAction, TriggerStep, TriggerTarget,
90    TriggerTiming, TriggerValue,
91};
92pub use txn::{IsolationLevel, OwnedRow, PutResult, UpsertAction, UpsertActionKind, UpsertResult};
93pub use wal::{AddedRun, DdlOp, Op, Record, SharedWal, Wal, WalReader, SYSTEM_TXN_ID};
94
95#[cfg(feature = "encryption")]
96pub use encryption::{AesCipher, ColumnKeyDescriptor, EncryptionDescriptor, Kek};