• Stars
    star
    2
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Key-Value memory storage database server build from Scratch using Go, with Redis-inspired commands and a few extra features..

🥝 Kiwi

Kiwi is a Key-Value storage server, written from scratch in Go as a personal pet project ands exercise to learn the Go programming language.

It aims to be as an alternative for Redis, and to support at least a subset of the commands provided by Redis, for familarity reasons. As added features, support for strong namespacing would be a nice to have addition.

PoC milestones

  • Supported Commands:
    • PING: returns PONG
    • GET <key>: retrieves the string value of a key
    • SET <key> <value>: sets the string value of a key
    • DEL <key>: deletes a key
    • KEYS: returns list of all available keys
  • Features
    • Invalidation
      • TTL
    • Namespacing
    • Distributed Locks
    • Simple Auth
      • Namespacing ACL
  • Networking:
    • Multi-protocol support
      • Connection Handshake and protocol negotiation
      • Supported Protocols
        • KiwiV0: rudimentary string marshalling for testing purposes
        • KiwiV1: Custom binary serialization or Protobuf
        • Redis RESPv3-compatible protocol

Name Origin

🥝 In Portuguese, Kiwi reads as "Quivi". Phonetically, it is pronounced as "Key-V", which is a play-on-words as short for Key-Value.