A highly configurable, distributed, in-memory data store and cache implemented in Go, usable as a library or standalone service.
SugarDB is a versatile in-memory data store and cache built in Go, designed to be embedded directly into applications or run as an independent service. It provides a rich set of data structures like lists, sets, sorted sets, and hashes, along with features such as persistence, replication, and security, making it a robust alternative to similar solutions. It solves the need for a high-performance, embeddable data store with distributed capabilities and strong data safety features.
Go developers building applications that require an embedded in-memory data store or cache, and system architects needing a standalone, distributed key-value store with Redis-like functionality. It's also suitable for teams requiring a data store with built-in security (TLS/mTLS, ACL) and fault-tolerant replication.
Developers choose SugarDB for its dual-mode operation as both an embeddable Go library and a standalone server, offering a rich feature set including RAFT-based replication, persistence, and extensibility via multiple scripting languages. Its compatibility with Redis clients (RESP protocol) and focus on being a configurable, distributed alternative provide a unique blend of embeddability and production-ready features.
Embeddable and distributed in-memory alternative to Redis.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
SugarDB can be imported as a Go library for embedded use or run as an independent server, offering flexibility in deployment, as shown in the README's embedded example and multiple installation options.
Uses the RAFT consensus algorithm to create reliable clusters for high availability, ensuring consistency across nodes, which is a core feature highlighted in the documentation.
Includes TLS/mTLS support and an ACL layer for authentication and authorization, providing enterprise-grade security for both embedded and server modes, as detailed in the features list.
Allows command extensions via Lua, JavaScript, shared object files, and embedded API, enabling customization without modifying core code, which is a unique strength mentioned in the README.
Uses the RESP protocol, making it compatible with existing Redis clients, reducing migration effort and allowing immediate integration with familiar tools, as noted in the Clients section.
Key functionalities like sharding, transactions, JSON support, and HyperLogLog are on the roadmap but not yet implemented, limiting use for applications that need these immediately, as admitted in the features section.
As a newer project, it lacks the extensive tooling, client libraries, and community support of established solutions like Redis, which can increase integration and troubleshooting time.
Managing a RAFT-based distributed cluster requires careful configuration and operational overhead compared to simpler replication models, potentially making deployment more challenging for smaller teams.
When used as an embedded library, the full feature set including replication and persistence may introduce resource overhead compared to lighter in-memory stores, affecting performance in constrained environments.
EchoVault is an open-source alternative to the following products: