simpledb-rs icon indicating copy to clipboard operation
simpledb-rs copied to clipboard

simple RDBMS written in Rust

simpledb-rs

SimpleDB re-written in Rust.

Requirements

How to run

$ git clone https://github.com/mnogu/simpledb-rs.git
$ cd simpledb-rs

Embedded

$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.21s
     Running `target/debug/main`
Connect> foo
creating new database
transaction 1 committed

SQL> create table STUDENT(SId int, SName varchar(10), MajorId int, GradYear int)
transaction 2 committed
0 records processed

SQL> insert into STUDENT(SId, SName, MajorId, GradYear) values (1, 'joe', 10, 2021)
transaction 3 committed
1 records processed

SQL> select SId, SName, MajorId, GradYear from student
    sid      sname majorid gradyear
-----------------------------------
      1        joe      10     2021
transaction 4 committed

Network

$ cargo run --bin server
    Finished dev [unoptimized + debuginfo] target(s) in 0.14s
     Running `target/debug/server`
creating new database
transaction 1 committed
$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.13s
     Running `target/debug/main`
Connect> //[::1]

SQL> create table STUDENT(SId int, SName varchar(10), MajorId int, GradYear int)
0 records processed

SQL> insert into STUDENT(SId, SName, MajorId, GradYear) values (1, 'joe', 10, 2021)
1 records processed

SQL> select SId, SName, MajorId, GradYear from student
    sid      sname majorid gradyear
-----------------------------------
      1        joe      10     2021

Status

  • [x] Disk and File Management
  • [x] Memory Management
  • [x] Transaction Management
  • [x] Record Management
  • [x] Metadata Management
  • [x] Query Processing
  • [x] Parsing
  • [x] Planning
  • [ ] JDBC Interfaces
  • [x] Indexing
  • [x] Materialization and Sorting
  • [x] Effective Buffer Utilization
  • [x] Query Optimization

References