Skip to content

aloima/tellydb

Repository files navigation

tellydb

An in-memory key-value database project.

Features

  • Follows RESP2/RESP3 from redis, so all redis clients are compatible
  • Fully configurable via .tellyconf
  • Includes command queue system using a thread
  • Supports integer, double, string, null, boolean, list and hash table types
  • Provides atomicity when saving to the database file
  • Provides saving to the database file using a background thread
  • Provides authorization system with permissions using passwords
  • Uses Direct I/O for logging and database files
  • Uses pipelining for combine multiple commands sent by same clients
  • Supports multiple databases
  • Data persists on one-file

The project is documented as follows:

File Includes
docs/SPECS.md architecture of the project
docs/FILE.md provided files by tellydb
docs/COMMANDS.md commands and their information
docs/AUTH.md authorization logic

Installation

Install from GitHub Releases:

Compile on Local Machine:

  • Clone the repository
  • Install OpenSSL library and its development headers
  • Install jemalloc library and its development headers
  • Install gmp library and its development headers
  • Install cmake to generate compile files
  • Install gperf to generate perfect hash method
  • Create build directory using mkdir build and enter cd build
  • Generate compilation files using cmake ..
    • Compile inside the directory using make telly, then start the server using ./telly
    • Install your local machine using sudo make install, then start the server using telly

Install via Docker:

Pull docker image:

docker pull aloima/tellydb

Run docker container to start the server:

docker run -d -p 6379:6379 --name telly aloima/tellydb

To get information about cli commands, use ./telly help.

License

Licensed under BSD-3 Clause Clear License.

About

An in-memory key-value database project.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 5

Languages