rqlite is a lightweight, open-source, distributed relational database built on SQLite and Raft.
Versions 9.3.1 through 9.3.4 deliver a set of targeted fixes and internal improvements, most of them aimed at code quality, security posture, and correctness. The only user-facing operational change is that the official Docker image now runs the rqlite daemon as a non-root user.
New and Notable
Non-Root Execution in Docker Images
Version 9.3.4 contains no functional changes relative to 9.3.3. Its sole purpose is to adjust Docker image creation so rqlite runs as a non-root user. This brings the image in line with common container security practice. Systems that enforce non-root execution, or that scan for elevated privileges, should now integrate more smoothly with rqlite.
Implementation Improvements
Static Analysis Fixes
9.3.3 includes work derived from extended static analysis. These changes remove edge-case risks and clarify intent in parts of the codebase. They do not alter behaviour but improve maintainability.
SQL Parser Upgrades
Versions 9.3.1 and 9.3.3 both include parser upgrades. Users should see more consistent handling of complex expressions which use RETURNING.
Dependency Updates
9.3.2 updates a Go crypto package from 0.44.0 to 0.45.0. While routine, these updates often include security patches and better library performance.
SQL Time Functions and Hook Error Reporting
9.3.1 also clarifies the behaviour of certain SQL time functions and fixes error reporting for update hooks. These changes improve correctness and make debugging easier for operators who rely on hooks for change tracking.
For full details, see the CHANGELOG. To discuss these releases or ask questions, join the rqlite Slack channel.