Skip to content

ly0va/dobby

Repository files navigation

dobby

ci dependency status

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.

About

dobby is a homemade table-oriented (but not really relational) database engine with a modular design.

Features

  • 💾 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!

Details

You can read about each module in the docs:

Installation

Native installation

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 image

docker pull ghcr.io/ly0va/dobby:master

Credits

  • Logo created by David S from The Noun Project
  • Everything else in this repo - by yours truly

About

A database engine as poor as a house elf

Topics

Resources

License

Stars

Watchers

Forks

Languages