All Projects → marceloboeira → Bojack

marceloboeira / Bojack

Licence: mit
🐴 The unreliable key-value store

Programming Languages

ruby
36898 projects - #4 most used programming language
crystal
512 projects

Projects that are alternatives of or similar to Bojack

Cash
HTTP response caching for Koa. Supports Redis, in-memory store, and more!
Stars: ✭ 122 (+20.79%)
Mutual labels:  redis, cache, storage, store
Kache
A simple in memory cache written using go
Stars: ✭ 349 (+245.54%)
Mutual labels:  database, redis, cache, nosql
Koa Redis
Redis storage for Koa session middleware/cache with Sentinel and Cluster support
Stars: ✭ 324 (+220.79%)
Mutual labels:  redis, cache, storage
Dynomite
A generic dynamo implementation for different k-v storage engines
Stars: ✭ 3,830 (+3692.08%)
Mutual labels:  redis, cache, nosql
Laravel Eloquent Query Cache
Adding cache on your Laravel Eloquent queries' results is now a breeze.
Stars: ✭ 529 (+423.76%)
Mutual labels:  database, redis, cache
Redisson
Redisson - Redis Java client with features of In-Memory Data Grid. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, MyBatis, RPC, local cache ...
Stars: ✭ 17,972 (+17694.06%)
Mutual labels:  redis, cache, distributed
Bitnami Docker Redis
Bitnami Redis Docker Image
Stars: ✭ 317 (+213.86%)
Mutual labels:  database, redis, nosql
Sleekdb
Pure PHP NoSQL database with no dependency. Flat file, JSON based document database.
Stars: ✭ 450 (+345.54%)
Mutual labels:  database, storage, nosql
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+1946.53%)
Mutual labels:  database, cache, distributed
Redix
a persistent real-time key-value store, with the same redis protocol with powerful features
Stars: ✭ 907 (+798.02%)
Mutual labels:  database, redis, nosql
Redis Marshal
Lightweight Redis data exploration tool
Stars: ✭ 16 (-84.16%)
Mutual labels:  database, redis, nosql
Titan
A Distributed Redis Protocol Compatible NoSQL Database
Stars: ✭ 1,050 (+939.6%)
Mutual labels:  redis, nosql, distributed
elara
Elara DB is an easy to use, lightweight key-value database that can also be used as a fast in-memory cache. Manipulate data structures in-memory, encrypt database files and export data. 🎯
Stars: ✭ 93 (-7.92%)
Mutual labels:  nosql, storage, cache
Endb
Key-value storage for multiple databases. Supports MongoDB, MySQL, Postgres, Redis, and SQLite.
Stars: ✭ 208 (+105.94%)
Mutual labels:  database, redis, cache
Tera
An Internet-Scale Database.
Stars: ✭ 1,846 (+1727.72%)
Mutual labels:  database, storage, nosql
Lada Cache
A Redis based, fully automated and scalable database cache layer for Laravel
Stars: ✭ 424 (+319.8%)
Mutual labels:  database, redis, cache
Foundatio
Pluggable foundation blocks for building distributed apps.
Stars: ✭ 1,365 (+1251.49%)
Mutual labels:  redis, storage, distributed
Db Tutorial
💾 db-tutorial 是一个数据库教程。
Stars: ✭ 128 (+26.73%)
Mutual labels:  database, redis, nosql
Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (+1590.1%)
Mutual labels:  database, redis, nosql
Java Knowledge Mind Map
【🌱🌱Java服务端知识技能图谱】用思维脑图梳理汇总Java服务端知识技能
Stars: ✭ 787 (+679.21%)
Mutual labels:  database, redis, cache

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:

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].