From f4f6d801b764ca6cf8b4303aa222593f95a8bc64 Mon Sep 17 00:00:00 2001 From: bronku Date: Fri, 9 Jan 2026 01:21:41 +0100 Subject: [PATCH] added README.md --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f8852c1 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# Persistent B+ Tree in Rust + +A high-performance, disk-backed B+ Tree implementation designed for manual page management and efficient data retrieval. This project explores the intersection of database engine internals and Rust's memory safety. + +## Key Features + +* **Disk Persistence:** Implements a custom `FileStorage` layer that handles reading/writing nodes as discrete pages. +* **B+ Tree Logic:** Supports insertion, search, and tree traversal with internal/leaf node splitting. +* **Performance Tracking:** Built-in statistics for monitoring Page Reads, Page Writes, and total I/O operations. +* **REPL Interface:** Interactive command-line interface for real-time tree manipulation. + +## Technical Implementation + +The tree is built with a focus on **implementation-level transparency**: +- **Storage Abstraction:** Uses a `Storage` trait to allow for interchangeable backends (e.g., in-memory vs. file-backed). +- **Serialization:** Utilizes `bincode` for efficient binary encoding of nodes. +- **Node Structure:** Custom `Internal` and `Leaf` node definitions with configurable `DEGREE`. + + + +## Getting Started + +### Prerequisites +* Cargo + +### Build and Run +```bash +cargo run +```