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
16extern crate self as wasm_dbms_memory;
17
18mod acl;
19mod memory_access;
20mod memory_manager;
21mod provider;
22mod schema_registry;
23pub mod table_registry;
24
25pub use self::acl::{AccessControl, AccessControlList, NoAccessControl};
26pub use self::memory_access::MemoryAccess;
27pub use self::memory_manager::{MemoryManager, align_up};
28pub use self::provider::{HeapMemoryProvider, MemoryProvider, WASM_PAGE_SIZE};
29pub use self::schema_registry::{SchemaRegistry, TableRegistryPage};
30pub use self::table_registry::{NextRecord, TableReader, TableRegistry};
31
32/// Prelude re-exports for convenient use.
33pub mod prelude {
34    pub use super::acl::{AccessControl, AccessControlList, NoAccessControl};
35    pub use super::memory_access::MemoryAccess;
36    pub use super::memory_manager::{MemoryManager, align_up};
37    pub use super::provider::{HeapMemoryProvider, MemoryProvider, WASM_PAGE_SIZE};
38    pub use super::schema_registry::{SchemaRegistry, TableRegistryPage};
39    pub use super::table_registry::{NextRecord, TableReader, TableRegistry};
40}