wasm-dbms-memory

Runtime-agnostic memory abstraction and page management for the wasm-dbms framework.
This crate provides the storage layer used by wasm-dbms, handling page-level memory
operations, schema persistence, access control, and record-level storage.
Components
MemoryProvider- Trait for abstracting memory backends (stable memory, heap, etc.)HeapMemoryProvider- In-memory implementation for testingMemoryManager- Page-level memory operationsSchemaRegistry- Table schema persistenceAccessControlList- Identity-based access controlTableRegistry- Record-level storage and retrievalAutoincrementLedger- Autoincrement counter tracking per column
Memory Model
The memory is organized into 64 KiB pages:
+---------------------------------------------+
| Schema Registry (1 page) |
+---------------------------------------------+
| ACL Table (1 page) |
+---------------------------------------------+
| Table XX Page Ledger (1 page) |
| Table XX Free Segments Ledger |
| Table XX Index Ledger |
| Table XX Autoincrement Ledger (if needed) |
+---------------------------------------------+
| Table YY Page Ledger (1 page) |
| Table YY Free Segments Ledger |
| Table YY Index Ledger |
+---------------------------------------------+
| Table XX Records - Page 1 |
| Table XX Records - Page 2 |
| Table YY Records - Page 1 |
| ... |
+---------------------------------------------+
Usage
use *;
// Use HeapMemoryProvider for testing
let provider = default;
let mut manager = new;
License
This project is licensed under the MIT License. See the LICENSE file for details.