A database engine as poor as a house elf
disclaimer: this is a university project. Please don't jump to any conclusions when you see poorly designed, poorly tested, feature-deprived, underdocumented and/or buggy modules. This is not meant for public use. For educational purposes only.
dobby
is a homemade table-oriented (but not really relational) database engine with a modular design.
- 💾 Basic CRUD operations
- ⚙️ Filtering based on column values
- 🛠️ Creating and dropping tables
- 📝 Renaming columns
- ✉️ A modern REST API with OpenAPI spec
- 📦 An even more modern gRPC API
- ✨ A fancy CLI client
- 🔧 Client code generation
- 📒 Logging
- 🪶 Optional SQLite back-end
- 🚀 Try
dobby
on Heroku! - 💻 Cross-platform!
- ⚡ Blazingly fast!
You can read about each module in the docs:
note: this guide is only applicable for Linux/MacOS users. If you use Windows... why?
Build dependencies: Rust 1.56+, Protobuf 3+
# rust
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# protoc (ubuntu/debian)
$ apt install -y protobuf-compiler
# protoc (arch)
$ pacman -S protobuf
# protoc (macOS)
$ brew install protobuf
Installing dobby
via cargo:
cargo install --bins --git https://github.com/ly0va/dobby
Or building from source:
$ git clone https://github.com/ly0va/dobby
$ cd dobby
$ cargo build
This provides two binaries, dobbyd
(the daemon) and dobby
(the client)
docker pull ghcr.io/ly0va/dobby:master
- Logo created by David S from The Noun Project
- Everything else in this repo - by yours truly