{"repo":"kvtools/valkeyrie","free":true,"listed":false,"github":"https://github.com/kvtools/valkeyrie","clone":"git clone https://github.com/kvtools/valkeyrie.git","description":"Distributed Key/Value Store Abstraction Library written in Go.","language":"Go","stars":306,"topics":["consul","key-value","redis","etcd","golang","zookeeper","boltdb","dynamodb","go","kv-store"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"Valkeyrie Distributed Key/Value Store Abstraction Library Valkeyrie valkeyrie provides a Go native library to store metadata using Distributed Key/Value stores (or common databases). Its goal is to abstract common store operations ( Get , Put , List , etc.) for multiple Key/Value store backends. For example, you can easily implement a generic Leader Election algorithm on top of it (see the docker/leadership repository). The benefit of valkeyrie is not to duplicate the code for programs that should support multiple distributed Key/Value stores such as Consul / etcd / zookeeper , etc. Examples of Usage You can refer to Examples for a basic overview of the library. Compatibility A storage backend in valkeyrie implements (fully or partially) the Store interface. Calls Consul Etcd Zookeeper Redis BoltDB DynamoDB ----------------------- :------: :----: :---------: :-----: :------: :--------: Put 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ Get 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ Delete 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ Exists 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ Watch 🟢️ 🟢️ 🟢️ 🟢️ 🔴 🔴 WatchTree 🟢️ 🟢️ 🟢️ 🟢️ 🔴 🔴 NewLock (Lock/Unlock) 🟢️ 🟢️ 🟢️ 🟢️ 🔴 🟢️ List 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ DeleteTree 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ AtomicPut 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ AtomicDelete 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ 🟢️ The store implementations: - boltdb - consul - dynamodb - etcdv2 - etcdv3 - redis - zookeeper The store template: - template Limitations Distributed Key/Value stores often have different concepts for managing and formatting keys and their asso","default_branch":null,"files":null,"tree":[],"storefront":"/r/kvtools","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/kvtools/valkeyrie/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}