Skip to content

GhostDB is a distributed, in-memory, general purpose key-value data store that delivers microsecond performance at any scale.

License

Notifications You must be signed in to change notification settings

xiaolingis/GhostDB

 
 

Repository files navigation

GhostDB logo

Build Twitter

Discord

📚 Overview

GhostDB is a distributed, in-memory, general purpose key-value data store that delivers microsecond performance at any scale.

GhostDB is designed to speed up dynamic database or API driven websites by storing data in RAM in order to reduce the number of times an external data source such as a database or API must be read. GhostDB provides a very large hash table that is distributed across multiple machines and stores large numbers of key-value pairs within the hash table.

🚗 Roadmap

GhostDB was a university project - it is not fully featured but we're getting there!

This is a high-level roadmap of what we want GhostDB to become by the end of 2020. If you have any feature requests please create one from the template and label it as feature request!

  • First hand support for list, set, stack and queue data structures (among others)
  • Transactions
  • Batch read/write
  • Subscribable streams
  • Monitoring & administration dashboard
  • Enhanced security features
  • Transition to TCP sockets as transport protocol
  • CLI
  • Support for a wide range of programming languages

🔧 Installation

To install GhostDB please consult the installation guide for a quick walkthrough on setting up the system.

🔨 Cluster Configuration

To configure a GhostDB cluster please follow the instructions in the configuration guide

👋 Interacting with your Cluster

Using our SDKs

The way you interact with your GhostDB cluster is through our SDKs. We currently have two SDKs available. Follow the SDK specific guides on the respective SDK repositories for installation instructions:

We also have a number of SDKs in active development and will be available soon:

We are also looking for developers who would like to contribute to GhostDB by developing SDKs for languages they would like to see an SDK for!

Using our CLI

We are currently developing a CLI for GhostDB which will provide you with the ability to interact with your cluster using the same commands you would with our SDKs, the ability to perform administrative actions on your cluster, and get more in-depth information on your clusters state.

📗 FAQ

What is GhostDB?

GhostDB is a distributed, in-memory, general purpose key-value data store that delivers microsecond performance at any scale.

GhostDB is designed to speed up dynamic database or API driven websites by storing data in RAM in order to reduce the number of times an external data source such as a database or API must be read. GhostDB provides a very large hash table that is distributed across multiple machines and stores large numbers of key-value pairs within the hash table.

How does GhostDB compare to other systems like Redis?

In it's current state, GhostDB isn't all that different but GhostDB is still in very early development and we have a tonne of features to add that you can checkout in our Roadmap.

If you have any features you'd love to see in GhostDB then open a feature request using the template!

What are some of GhostDB's use cases?

  • In-memory data lookup
  • Relational and Non-relational database speedup
  • Managing spikes in web/mobile apps
  • Session-store
  • Token caching
  • Gaming - Player profiles & leaderboards
  • Web page caching
  • Global ID or counter generation
  • Fast access to any suitable data

✏️ Authors

Jake Grogan

Connor Mulready

⭐ Show your support

Give a ⭐ if this project helped you!

About

GhostDB is a distributed, in-memory, general purpose key-value data store that delivers microsecond performance at any scale.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 96.5%
  • Makefile 2.0%
  • Shell 1.5%