Skip to content

[In Development] An Experimental distributed Key Value Store written in pure Go

License

Notifications You must be signed in to change notification settings

wuriyanto48/kece

Repository files navigation



Build Status

What is kece?

An Experimental distributed Key Value Store written in Go

TODO

  • Add Pub Sub feature
  • Protocol ? :D
  • Support multiple datatype to store (now Kece only support simple string)

Usage

  • Build binary from source
$ go get github.com/Bhinneka/kece

$ go install github.com/Bhinneka/kece/cmd

$ kece --version
  • Run kece server

    if port flag is not present, kece will using 9000 as the default port

$ kece -port 8000
 _  __ _____  ______  _____
| |/ /| |__| |   ___|| |__| |
| |\ \| |___ |  |    | |___
|____________|_____________**%**

log -> kece server listen on port : 8000
  • There are two type of data structure for store data, HashMap and Binary Tree (default using HashMap). For choose data structure type, add flag -ds.
$ kece -port 8000 -ds bt
$ kece -port 8000 -ds hashmap
  • Store simple data

    you can use either nc or telnet as the client

$ nc localhost 8000
$
$ SET 1 wuriyanto
$ +OK
$
$ SET *BJE* bhinneka
$ +OK
$
$ GET 1
$ wurianto
$
$ GET *BJE*
$ bhinneka
$
$ DEL 1
$ +OK
  • Auth mechanism

    if you want to use Auth on your kece server, simply add -auth your-server-password when start your server

$ kece -port 8000 -auth my-secret
 _  __ _____  ______  _____
| |/ /| |__| |   ___|| |__| |
| |\ \| |___ |  |    | |___
|____________|_____________**%**

log -> kece server listen on port : 8000
send auth to server
$ AUTH my-secret
$ +OK
$

Author

Wuriyanto https://github.com/wuriyanto48

Contributor

Contibutions PR

Before creating PR make sure your PR is passed. Use the linter first, then commit and push

$ make lint-prepare

$ make lint

$ make test

About

[In Development] An Experimental distributed Key Value Store written in pure Go

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •