Skip to content

πŸš€ This project is aimed at understanding how SQL databases work internally and implementing a tiny SQL database using Rust. It serves as a learning tool to explore database concepts while gaining familiarity with Rust programming.

License

Notifications You must be signed in to change notification settings

xBLACKICEx/mini-sqldb-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mini-sqldb-rs πŸ¦€πŸ“š

mini-sqldb-rs This is a personal learning project where I'm diving into the world of SQL databases by building one from scratch using Rust. The primary goal here is to solidify my understanding of Rust while exploring the inner workings of a database system. (๑‒̀ㅂ‒́)و✧

Yes, the real goal is to write more Rust, explore database internals, wrestle with async & ownership, and maybeβ€”just maybeβ€”make peace with lifetimes. πŸ§˜β€β™‚οΈ)

Architecture πŸ—οΈ

To better understand how this database engine works, here are two architecture diagrams:

High-Level Architecture 🌎

This diagram gives an overview of how the SQL execution pipeline is structured.

Detailed Architecture βš™οΈ (Click to expand)

Project Status 🚧

Still at the beginning of the journey! 🌱 This project is my attempt to build a SQL database from scratch, and so far, I’ve only scratched the surface. There's a lot more to come!

βœ… Implemented:

  • Database Core
    • βœ… Database architecture
    • βœ… Basic SQL execution (SELECT, CREATE TABLE, INSERT)
    • βœ… In-memory and basic disk-based storage
    • βœ… Transactions ACID properties and MVCC

In Progress πŸ”¨:

  • Next Focus: Refinement Basic sql
  • πŸ”œ add update, delete, order by
  • πŸ”œ limit, offset
  • πŸ”œ projection

About

πŸš€ This project is aimed at understanding how SQL databases work internally and implementing a tiny SQL database using Rust. It serves as a learning tool to explore database concepts while gaining familiarity with Rust programming.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages