Skip to main content

wasm_dbms_memory/
lib.rs

1// Rust guideline compliant 2026-02-28
2
3//! `wasm-dbms-memory` provides runtime-agnostic memory abstraction and
4//! page management for the wasm-dbms framework.
5//!
6//! This crate contains:
7//! - [`MemoryProvider`] trait for abstracting memory backends
8//! - [`HeapMemoryProvider`] for testing
9//! - [`MemoryManager`] for page-level memory operations
10//! - [`SchemaRegistry`] for table schema persistence
11//! - [`AccessControl`] trait for pluggable access control
12//! - [`AccessControlList`] for identity-based access control
13//! - [`NoAccessControl`] for runtimes without access control
14//! - [`TableRegistry`] for record-level storage and retrieval
15//! - [`AutoincrementLedger`] for autoincrement column value tracking
16
17extern crate self as wasm_dbms_memory;
18
19mod acl;
20mod memory_access;
21mod memory_manager;
22mod provider;
23mod schema_registry;
24pub mod table_registry;
25
26pub use self::acl::{AccessControl, AccessControlList, NoAccessControl};
27pub use self::memory_access::MemoryAccess;
28pub use self::memory_manager::{MemoryManager, align_up};
29pub use self::provider::{HeapMemoryProvider, MemoryProvider, WASM_PAGE_SIZE};
30pub use self::schema_registry::{SchemaRegistry, TableRegistryPage};
31pub use self::table_registry::{
32    IndexLedger, IndexTreeWalker, NextRecord, RecordAddress, TableReader, TableRegistry,
33};
34
35/// Prelude re-exports for convenient use.
36pub mod prelude {
37    pub use super::acl::{AccessControl, AccessControlList, NoAccessControl};
38    pub use super::memory_access::MemoryAccess;
39    pub use super::memory_manager::{MemoryManager, align_up};
40    pub use super::provider::{HeapMemoryProvider, MemoryProvider, WASM_PAGE_SIZE};
41    pub use super::schema_registry::{SchemaRegistry, TableRegistryPage};
42    pub use super::table_registry::{
43        AutoincrementLedger, IndexLedger, IndexTreeWalker, NextRecord, RecordAddress, TableReader,
44        TableRegistry,
45    };
46}