An embeddable, highly-available SQLite database with Raft-based replication, automatic failover, and integrated caching.
Hiqlite is an embeddable SQLite database that uses the Raft consensus algorithm to form a highly available cluster. It provides strong consistency, automatic leader failover, replication, and self-healing capabilities while maintaining the fast local reads and simplicity of embedded SQLite. It solves the problem of achieving high availability with SQLite without resorting to a client-server architecture.
Rust developers building applications that require a reliable, embedded database with high availability and replication features, such as distributed services, microservices, or applications needing automatic failover without managing external database servers.
Developers choose Hiqlite because it combines the convenience and performance of embedded SQLite with the robustness of a Raft-based distributed system, offering high availability, automatic backups, and integrated caching without the overhead of a separate database server.
Hiqlite - highly-available, embeddable, raft-based SQLite + cache
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Delivers fast local reads by embedding SQLite directly in Rust applications, avoiding network latency for queries and leveraging SQLite's optimized WAL mode for on-disk efficiency.
Forms a Raft-based cluster with automatic leader election and failover, providing strong consistency, replication, and self-healing from node failures or data loss.
Includes disk-backed key-value caches with TTL, automated encrypted backups to S3, distributed locks, and real-time messaging via listen/notify, reducing dependency on external services.
Features auto-healing to recover from ungraceful shutdowns by rebuilding the SQLite database from snapshots and Raft logs, minimizing manual intervention and downtime.
Raft consensus requires two network round-trips per write, limiting throughput compared to standalone SQLite, especially on slower hardware where benchmarks show inserts dropping to ~9.1k/s on older SSDs.
Setting up a cluster involves manual configuration steps like generating TOML files, managing secrets, and deploying in Kubernetes with StatefulSets, as admitted in the README's extensive setup instructions.
The current version has intentionally verbose info-level logging for stabilization, which can clutter output and requires future reduction, as noted in the known issues section.
Tightly integrated with Rust and its crates, making it unsuitable for projects in other languages without significant rework or bridging layers.