sxnb / RockyDB

A key-value storage written in Kotlin. Supports primitives as well as more complex data structures. Created with the purpose of learning Kotlin.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RockyDB

WorkInProgress

About

RockyDB is an in-memory storage engine which allows fast&easy storage of various data structures. At the moment, RockyDB can store primitive data types, as well as Lists, Queues and Stacks.

Features

  • supports Lists, Queues, Stacks
  • stored in-memory with automatic dump to file
  • allows manual dump and restoration from file
  • sync vs. async execution of commands
  • key event subscribe
  • JS Connector https://github.com/sxnb/RockyDB-JS-connector

In Progress

  • implementation of Matrices, Trees
  • PHP Connector

Available Commands

Below you can find a table of all available commands. The commands are case insensitive.

Command Arguments Example Description
PSet key value pset a 100 Sets a primitive value to a key. Fails if the key already exists.
PUpsert key value pupsert a 100 Sets or updates a key.
PGet key pget a Retrieve a key containing a primitive value.
Del key del a Removes a key.
Keys - keys Returns the list of all keys.
Dump - dump Dumps the entire database to a file.
LCreate key lcreate mylist Initializes a list.
LAdd key value ladd mylist myvalue Adds a value to the end of a list.
LDel key value ldel mylist index Removes a value from a list.
LSize key lsize mylist Returns the size of a list.
QCreate key qcreate myqueue Initializes a queue.
QEnqueue key value qenqueue myqueue myvalue Enqueues a value.
QDequeue key qdequeue myqueue Dequeues a value.
QPeek key qpeek myqueue Returns the head of a queue.
QSize key qsize myqueue Returns the size of a queue.
QIsEmpty key qisempty myqueue Returns whether a queue is empty.
SCreate key screate mystack Initializes a stack.
SPush key value spush mystack myvalue Pushes a value to a stack.
SPop key spop mystack Pops a value from a stack.
SPeek key speek mystack Returns the top of a stack.
SSize key ssize mystack Returns the size of a stack.
SIsEmpty key sisempty mystack Returns whether a stack is empty.
Ping - ping Pings the server.
Flush - flush Removes all keys.
Type key type key Returns the type of a key.
Exists key exists key Returns whether a key exists.
Watch key watch key Gets notified when a key is modified.

TODO

Command Arguments Example Description
Increment
Decrement

About

A key-value storage written in Kotlin. Supports primitives as well as more complex data structures. Created with the purpose of learning Kotlin.


Languages

Language:Kotlin 76.0%Language:JavaScript 24.0%