EchoVault, Embeddable in-memory store to replace Redis in Go apps
EchoVault, Embeddable in-memory store to replace Redis in Go apps
Hi everyone, Over the last year, I’ve been working on building EchoVault. EchoVault is an in-memory data store that is both client-server over TCP and completely embeddable within a Go application: Current Features: 1) TLS and mTLS support for multiple server and client RootCAs. 2) Replication cluster support using the RAFT algorithm. 3) ACL Layer for user Authentication and Authorization. 4) Distributed Pub/Sub functionality with consumer groups. 5) Sets, Sorted Sets, Hashes, Lists and more. 6) Persistence layer with Snapshots and Append-Only files. 7) Various Key Eviction Policies. 8) Command extension via shared object files. 9) Command extension via embedded API. There are many more features in the pipeline, such as: 1) Sharding 2) Streams 3) Bitmap 4) HyperLogLog 5) Lua Modules EchoVault is fully RESP compatible over TCP, so you can use your existing Redis clients to communicate with an EchoVault server. Why does this exist? Here are some of the reasons I decided to build EchoVault: 1) Redis is lightweight but still an external service you must run. EchoVault allows you to embed an in-memory store offering a subset of Redis functionality embedded into your application, so you don’t have to worry about managing a separate service. 2) EchoVault removes the need to handle a Redis replication cluster. The embedded instances of EchoVault can connect to form a cluster with a simple configuration. So, each instance of your application can use the embedded API while EchoVault takes care of the replication for you. 3) Since Redis’ license shenanigans earlier this year, I believe EchoVault will be able to fill a role, particularly in the Go ecosystem. EchoVault is Apache 2.0 licenced. 4) EchoVault aims to make Redis redundant in many use cases where Redis would usually fit in Go applications or ecosystems. Over time, we aim to make this list of use cases longer and longer. Possible user cases for EchoVault You can use EchoVault in many of the same scenarios you’d use Redis, including but not limited to: 1) Service discovery. 2) In-memory data caching. 3) Session management (across multiple instances of your application). 4) Publish/Subscribe workflows 5) Unordered key/value storage. Check out the GitHub repository, and feel free to leave a start if you like the project: https://github.com/EchoVault/EchoVault Contributions are welcome, too!
Share cardActual performance
Launch Intel predictions
Analyze your own launch →Incorrect prediction on native model
Similar products
Tail.select 1.0.0 is out (replace your dropdowns now)
Topaz – replace three Azure emulators with one binary
Emojify – Replace variable identifiers with emojis
Replace Anything AI
Unwrap_or_AI – replace unwrap() with AI guesses for errors
Distributed In-Memory data-store build with Go
Replace 5 apps with one linked Notion workspace.
I made a tool that will replace frameworks
Replace GA + Hotjar + CRO tools with one.
Cerium – Yet, another ls-like util that is not trying to replace ls