gql_db: A relational database server with git-like version control
Hey y'all!
I wanted to share our university capstone project with the community, gql-db: a Relational Database Server with version control integrated into it, written in Rust. The motivation behind this, would be to allow developers to work on separate "branches" of the database, and then merge their changes into a main branch. Reverting changes, now termed as commits, in a database also becomes much easier. Here's some nice documentation on our Version Control System and File Representations.
This was all of our first time using Rust, so it was definitely a challenge to get familiar with Rust's safety rules. But the borrow checker and ownership system also definitely really helped us avoid common programming mistakes. We've all previously had nightmares trying to setup gRPC/protoc with C++, so Rust's package management system was also a huge breath of fresh air.
We're really proud of what we were able to accomplish with Rust during this semester, and we hope that our project might be of interest to others in the community who are also learning or working with Rust.
If you have any questions or feedback, we'd love to hear from you!