Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wuriyanto48/kece
[In Development] An Experimental distributed Key Value Store written in pure Go
https://github.com/wuriyanto48/kece
cache caching go golang inmemory inmemory-db kece keyvalue keyvaluestore
Last synced: about 1 month ago
JSON representation
[In Development] An Experimental distributed Key Value Store written in pure Go
- Host: GitHub
- URL: https://github.com/wuriyanto48/kece
- Owner: wuriyanto48
- License: other
- Created: 2019-01-28T08:57:58.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-12-26T11:36:10.000Z (almost 4 years ago)
- Last Synced: 2024-06-20T09:19:36.889Z (6 months ago)
- Topics: cache, caching, go, golang, inmemory, inmemory-db, kece, keyvalue, keyvaluestore
- Language: Go
- Homepage:
- Size: 105 KB
- Stars: 9
- Watchers: 7
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/wuriyanto48/kece)
[![Build Status](https://travis-ci.org/wuriyanto48/kece.svg?branch=master)](https://travis-ci.org/wuriyanto48/kece)### 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
```shell
$ 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
```shell
$ 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`.
```shell
$ kece -port 8000 -ds bt
$ kece -port 8000 -ds hashmap
```- Store simple data
you can use either `nc` or `telnet` as client
```shell
$ 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
```shell
$ kece -port 8000 -auth my-secret
)
( /( ( (
)\()) ))\ ( ))\
((_)\ /((_) )\ /((_)
| |(_)(_)) ((_)(_))
| / / / -_)/ _| / -_)
|_\_\ \___|\__| \___|log -> kece server listen on port : 8000
```send auth to server
```shell
$ AUTH my-secret
$ +OK
$
```- Access KECE from code
follow this repository https://github.com/Bhinneka/kece-client-examples to see example how to access `kece` from specific language
#
### 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
```