BoJack is a single-node key-value store written in Crystal.
- Source Code
- https://github.com/marceloboeira/bojack[01]
- Developer
- Country of Origin
- DE
- Start Year
- 2016 [05]
- Project Type
- Open Source
- Written in
- Crystal
- Inspired By
- Redis
- Operating System
- Linux
- License
- MIT License
BoJack is a single-node key-value store written in Crystal.
History[02]
The systems was started by Marcelo Boeira in 2016 as a learning vehicle for understanding NoSQL database systems.
Concurrency Control[03]
BoJack does not provide any kind of concurrency control. Concurrent client requests are handled by the Crystal language's concurrent Channel class.
Data Model
BoJack's data model relies on a key/value store which maps string keys to string array values.
Logging
Bojack logs, in addition to errors, individual commands for any client action, along with the date and time of interaction, and the client's address and port.
This includes anytime a client connects, or a key is set, updated, or deleted.
Query Interface[04]
Bojack provides a standard command-line interface for starting the server and connecting clients.
Citations
5 sources- GitHub - marceloboeira/bojack: 🐴 The unreliable key-value store · GitHub github.com
- https://medium.com/@marceloboeira/why-you-should-build-your-own-nosql-database-9bbba42039f5 medium.com
- Channel::Unbuffered(T) - github.com/crystal-lang/crystal crystal-lang.org
- GitHub - marceloboeira/bojack: 🐴 The unreliable key-value store · GitHub github.com
- chore: Bootstrap BoJack :horse: github.com