NYX is a high-speed, experimental key-value database. NYX provides reliable storage for your critical data, ensuring constant availability. It is an ideal lightweight, distributed kvs data store for developers and operators alike.
To use the template, run the following command(s):
-
Download or upgrade to
golang 1.19
. -
Install all project golang dependencies by running
go mod download
.
-
Compile NYX to machine binary by running the following project level command(s):
- Using Make:
make build-app
- Using Make:
-
To run the compiled binary, you can use the following project level command(s):
- Using Make:
make run-app
- Direct Call:
./bin/nyx
- Using Make:
-
To test local KVS instance, open the new terminal console and run Netcat.
$ nc localhost 4001 > get abc END > set abc 0 0 5 > hello STORED > get abc VALUE abc 0 5 hello END > delete abc DELETED > get abc END
Persistent storage:
- New records are written to disk
- Each record has a minimum overhead of 8 bytes
- It allocates space in 2^N and attempts to reuse space if the value grows
- Allow to reuse space from deleted or evicted records
Developer-Friendly:
- Straightforward TCP/UDP protocol
Large data set support:
- Works well, even when managing multi-GB data sets
Easy Backups
Support memcache text protocol
Provide support for load and correctness testing client package
Nyx is an open source project, and contributions are gladly welcomed! To submit your changes please check pull request rules and open a pull request.