Bojack Save Abandoned

? The unreliable key-value store

Project README


The unreliable key-value store


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.



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


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


  1. Start the server, run: bojack server
  2. Connect a client, in another tab, run: bojack client
$ bojack console
> set food ?
> get food
> ping

By default BoJack runs at



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

bojack <server/console> <flags>


flag description
--hostname Hostname the server will run
--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


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


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


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


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.


Check the License here.

Open Source Agenda is not affiliated with "Bojack" Project. README Source: marceloboeira/bojack
Open Issues
Last Commit
5 years ago

Open Source Agenda Badge

Open Source Agenda Rating