https://github.com/aloima/tellydb
An in-memory key-value database project.
https://github.com/aloima/tellydb
database in-memory-database redis tellydb
Last synced: 3 months ago
JSON representation
An in-memory key-value database project.
- Host: GitHub
- URL: https://github.com/aloima/tellydb
- Owner: aloima
- License: bsd-3-clause-clear
- Created: 2024-08-07T14:31:02.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2026-03-27T22:51:50.000Z (3 months ago)
- Last Synced: 2026-03-28T05:06:50.075Z (3 months ago)
- Topics: database, in-memory-database, redis, tellydb
- Language: C
- Homepage:
- Size: 1.1 MB
- Stars: 26
- Watchers: 1
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tellydb
An in-memory key-value database project.
## Features
+ Follows [RESP2/RESP3](https://redis.io/docs/latest/develop/reference/protocol-spec/) from redis, so all redis clients are compatible
+ Fully configurable via [.tellyconf](./docs/FILE.md)
+ 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](./docs/SPECS.md) | architecture of the project |
| [docs/FILE.md](./docs/FILE.md) | provided files by tellydb |
| [docs/COMMANDS.md](./docs/COMMANDS.md) | commands and their information |
| [docs/AUTH.md](./docs/AUTH.md) | authorization logic |
## Installation
### Install via script
> [!IMPORTANT]
> It downloads dependencies and makes Docker operations, so it needs to be used via `sudo`.
```bash
curl -o- https://raw.githubusercontent.com/aloima/tellydb/master/install.sh | bash
```
### Install from GitHub Releases:
* Download the [latest release file](https://github.com/aloima/tellydb/releases/latest)
* Start the server using `./telly`
### 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:
```sh
docker pull aloima/tellydb
```
Run docker container to start the server:
```sh
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](./LICENSE).