Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yoeight/gethdb
The Database For The People
https://github.com/yoeight/gethdb
Last synced: 10 days ago
JSON representation
The Database For The People
- Host: GitHub
- URL: https://github.com/yoeight/gethdb
- Owner: YoEight
- License: gpl-3.0
- Created: 2022-09-11T02:15:18.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-18T01:10:08.000Z (3 months ago)
- Last Synced: 2024-10-13T04:15:19.307Z (24 days ago)
- Language: Rust
- Size: 687 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
GethDB
======The Database For The People.
## Introduction
This project is not a political statement. It is inspired by the Khelish word "Geth," meaning "Servant of the People."
The project is purely experimental and is where I explore various aspects of database design. I aim to test specific
data structures and observe their behavior in real-life scenarios.This is a side project that I work on during my spare time. It is not production-ready, and most of the code is
undocumented. Although the code is written entirely in Rust, performance is not a primary focus.## Supported platforms
The codebase should compile on any 64-bit platform supported by the Rust compiler. So far, it has been tested on Linux,
macOS, and Windows. Please note that Linux will remain the primary target## Features
The core engine is a NoSQL, append-only, and immutable database with the following key features:
* Custom binary format for storing data, based on Protobuf 2.
* Indexing is achieved through a homemade LSM tree implementation.
* Client communication is handled via gRPC.
* Full-featured REPL for database interaction.
* Capability to spawn programs using the [Pyro] programming language.
* Cluster functionality using a homemade Raft implementation (though it is not fully integrated yet).## What's next?
This is the features I want to work on
* Complete benchmark suite
* Support other programming languages for spawn processes, most likely Lua
* Introduce plugins
* Exposes the database core as a programmable platform.[Pyro]: https://github.com/YoEight/pyro