Skip to content

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
$ git clone https://github.com/wuriyanto48/kece.git

$ make build

$ 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 client

$ nc localhost 8000
$
$ SET 1 wuriyanto
$ +OK
$
$ SET *BJE* hello
$ +OK
$
$ GET 1
$ wurianto
$
$ GET *BJE*
$ hello
$
$ DEL 1
$ +OK
$
$ SET cache "this is cache value with lifetime 20 seconds" 20
$ +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

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

  •  
  •  
  •  
  •