{"repo":"MohamedAbdeen21/niwid-db","free":true,"listed":false,"github":"https://github.com/MohamedAbdeen21/niwid-db","clone":"git clone https://github.com/MohamedAbdeen21/niwid-db.git","description":"A toy, ACID compliant, and Relational-ish DBMS built from scratch","language":"Rust","stars":45,"topics":["database","database-design","query-engine","rust","sql","sqllogictest"],"license":null,"category":"databases-storage","readme_excerpt":"niwid-db niwid-db is a toy database management system built from scratch, designed to explore fundamental database concepts, including memory and disk management, ACID properties, basic transaction handling, indexing, and query execution. Table of Contents 1. Features 2. Getting Started 3. Examples 4. Some Implementation Details 5. Contributing Features - ACID Compliance via Shadow Paging : Ensures Atomicity, Consistency, Isolation (read-committed), and Durability by implementing shadow paging, maintaining a stable, crash-resistant state. Shadow paging allows a table to have only a single writer for simplified concurrency control. - Transaction Management : Supports commits and rollbacks to execute or discard changes within a transaction block to ensure transactional atomicity and isolation. - Custom Execution Engine : A simple query engine that processes SQL statements, validates the query and datatypes, and performs basic DDL, TCL, and DML operations. Also supports EXPLAIN and EXPLAIN ANALYZE . Unoptimized logical plans are executed directly, without physical plan generation or optimizations yet. - SQL Parsing : The only part not written from scratch. Leverages the sqlparser-rs crate for SQL syntax parsing. - B+ Tree Indexing : Implements a B+ Tree index to ensure uniqueness, enabling efficient lookups and range queries for unique columns. Since there is no optimizer yet, you can force an index lookup using the PREWHERE clause. Check out index.slt for more examples. - Const","default_branch":null,"files":null,"tree":[],"storefront":"/r/MohamedAbdeen21","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/MohamedAbdeen21/niwid-db/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}