akar-storage 0.2.0

Storage engine for the Akar embedded graph database
docs.rs failed to build akar-storage-0.2.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: akar-storage-0.2.1

Akar Storage

Page-based columnar storage engine with buffer management, WAL, compression, indexing, and data readers.

Buffer Manager: Clock eviction policy, composite-key page mapping (file_name, page_num), configurable pool size with dirty-page flushing.

Column: Page-aligned column with append/scan/get_value via BufferManager I/O, tag-aware compression integration.

ColumnChunk: In-memory buffer for NODE_GROUP_SIZE (4096) values, with append/flush_to_column/scan operations.

NodeGroup: Collection of ColumnChunks — append_row, flush, scan across groups with auto-creation on overflow.

NodeTable/RelTable: NodeGroup-based storage with insert_row, delete_row, update_cell, scan_column. RelTable uses CSR adjacency lists (label-keyed) + per-column property storage.

WAL: Write-ahead log with Insert/Delete/Update/Commit/Rollback/ColumnWrite records.

Checkpoint: durable column-mirror persist → WAL flush → dirty page flush → truncate WAL cycle. Committed SQL rows are recovered from the mirrors (their WAL records carry no row data); the per-commit persist is skipped when a checkpoint is imminent (P60.1).

Compression: Constant, Boolean, IntegerBitpacking (int8–int64), and Float compression. Tag-aware (compresses payload, never the discriminant byte).

CSV Reader: Full CSV parser with header detection, custom delimiter/quote/escape, type coercion for all 28+ Value variants, error reporting with line numbers.

Parquet Reader: Parquet file reader using Apache Arrow/Parquet crates (v53). Row group reading, Arrow->Akar type mapping (Int64->INT64, Utf8->STRING, etc.).

Index: Generic hash index with collision resolution.

Tests: 349