wasm-dbms-memory 0.7.0

Memory abstraction and page management for the wasm-dbms framework
Documentation

wasm-dbms-memory

logo

license-mit repo-stars downloads latest-version conventional-commits

ci coveralls docs

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

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 wasm_dbms_memory::prelude::*;

// Use HeapMemoryProvider for testing
let provider = HeapMemoryProvider::default();
let mut manager = MemoryManager::new(&provider);

License

This project is licensed under the MIT License. See the LICENSE file for details.