Skip to content

vincer2040/lexidb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LexiDB

An in-memory data structure database

Note: This project is for currently for educational purposes only. If you are looking to use something similar in a production environment, you should use redis.

Getting started

Requirements

  1. cmake >= 3.10

  2. gcc

building

git clone [email protected]:vincer2040/lexidb.git
cd lexidb
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

from withing the build durectory, optionally run tests:

make test

running the server

./lexidb

running the cli

in a new terminal

./lexi-cli

run some commands

./lexi-cli
lexi> set foo bar
ok
lexi> get foo
"bar"
lexi> keys
"foo"
lexi> set baz 500
ok
lexi> get baz
500
lexi> set foo "bar baz"
ok
lexi> get foo
"bar baz"

Client libraries

currently, there are client implentations in:

  1. C - Included in this repo (hilexi.c)

  2. nodejs

  3. C++

  4. rust

See those repos for for more information

Configuring the server

change the default address

./lexidb --address <address>

change the default port:

./lexidb --port <port>

change the loglevel

./lexidb --loglevel info | debug | verbose

info - only logs when the server starts, connections are established, and connections are closed

debug - logs info, commands, and other debugging information

verbose - logs everything

change the path of lexi.conf configuration file

./lexidb --config <path to config>

users

add users for the database by editing the lexi.conf file

see lexi.conf for more details