Giter Club home page Giter Club logo

bojack's Introduction

BoJack

The unreliable key-value store

Status

Originally, from my article "Why you should build your own NoSQL Database". BoJack is a bit mature now, yet missing several important features:

  • Cluster-friendliness
  • Security Layer (#34)
  • Unix Socket support (#48)

Feel free to share your thoughts and contribute.

Installation

Requirements

  • The latest version of Crystal (0.24.x)
  • LLVM development files

Steps

  1. Clone the repo: git clone https://github.com/marceloboeira/bojack
  2. Switch to repo-directory: cd bojack
  3. Build: make install (sudo for linux users)

Showtime

  1. Start the server, run: bojack server
  2. Connect a client, in another tab, run: bojack client
$ bojack console
> set food ๐Ÿฃ
๐Ÿฃ
> get food
๐Ÿฃ
> ping
pong

By default BoJack runs at 127.0.0.1:5000.

Usage

CLI

Currently the command-line interface supports two commands: server and console.

bojack <server/console> <flags>

Server

flag description
--hostname Hostname the server will run 127.0.0.1
--port Port the server will run 5000
--log Path for a log file STDOUT
--log-level Level of messages logged DEBUG = 0, INFO = 1 (default), WARN = 2, ERROR = 3, FATAL = 4

Console

flag description default
--hostname Hostname this console will connect 127.0.0.1
--port Port this console will connect 5000

Commands

List of available commands for BoJack

command description params example return
set sets a key with the given name and value key, value set foo bar the value of the key "bar"
increment increments the given key value by 1 key increment foo the value of the key "foo" incremented
get gets the value of the given value key get foo the value stored at the key, "bar"
delete deletes the given key key, * delete foo, delete * the value at the deleted key "bar" or every key in the database, if "*" is given instead of a key
append add one or more values to the end of a list key, value append list foo,bar the list resulted
pop retrieve the last item of the list key pop foo the last value stored at the list, "foo"
size return the number of stored items -- size the value of stored keys in memory
ping checks the server -- ping pong if everything is correct

Clients

Want to use BoJack with your language? Currently, we support:

  • Crystal - Thanks to @hugoabonizio
  • Python - Thanks to @mauricioabreu
  • Ruby - Thanks to @hugoabonizio
  • Elixir - Thanks to @veelenga

Contributing

Found a bug? Have a suggestion? Please open an issue.

Want to contribute? Take a look at our open issues and make sure you follow our guide.

License

Check the License here.

bojack's People

Contributors

cristianoliveira avatar gitter-badger avatar hugoabonizio avatar joaocv3 avatar marceloboeira avatar mauricioabreu avatar veelenga avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.