simpledb-rs
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] Uses gRPC and Protocol Buffers instead
- [x] Indexing
- [x] Materialization and Sorting
- [x] Effective Buffer Utilization
- [x] Query Optimization