5.1.0 (January 10th 2020)
- PR #613: Support read-only, non-voting nodes. These provide read scalability for the system.
- PR #614: Support specifying minimum leader freshness with None consistency queries.
- PR #620: Log level can be specified for Raft module.
5.0.0 (December 30th 2019)
This release uses a new Raft consensus version, with the move to Hashicorp Raft v1. As a result the Raft system in 5.0 is not compatible with the 4.0 series. To upgrade from an earlier version to this release you should backup your 4.0 leader node, and restore the database dump into a new 5.0 cluster.
The rqlite server also supports explicitly setting the node ID. While it's not required to set this, it's recommended for production clusters. See the cluster documentation for more details.
The HTTP Query and Insert API remains unchanged in the 5.0 series relative to the 4.0 series.
Implementation changes and bug fixes
- PR #597: Don't ignore any Join error, instead return it.
- PR #598: Ensure backup is correctly closed.
- PR #600: Move to Hashicorp Raft v1.1.1.
- PR #601: By default use Raft network address as node ID.
- PR #602: Add method to Store that returns leader ID.
- PR #603: Fix up status key name style.
- PR #604: JSON types are also text.
- PR #605: Broadcast Store meta via consensus.
- PR #607: Various Redirect fixes.
- PR #609: Simplify rqlite implementation.
- PR #610: Write node backup directly to HTTP response writer. Thanks @sum12.
- PR #611: Add varadic perm check functions to auth store.
4.6.0 (November 29th 2019)
This release adds significant new functionality to the command-line tool, including much more control over backup and restore of the database. Visit the Releases page to download this release.
- PR #592: Add dump database command (to SQL text file) to CLI.
- PR #585: Add backup command (to SQLite file) to CLI: Thanks @eariassoto.
- PR #589: Add restore command (from SQLite file) to CLI. Thanks @eariassoto.
- PR #584: Support showing query timings in the CLI. Thanks @joaodrp.
- PR #586: rqlite CLI now supports command-recall via cursor key. Thanks @rhnvrm.
- PR #564: rqlite server supports specifying trusted root CA certificate. Thanks @zmedico.
- PR #593: rqlite CLI now supports HTTP proxy (via Environment). Thanks @paulstuart
- PR #587: Add expvar statistics to store.
Implementation changes and bug fixes
- PR #591: Store layer supports generating SQL format backups.
- PR #590: DB layer supports generating SQL format backups.
- PR #588: Abort transaction if load from backup operation fails.
- If joining a cluster via HTTP fails, try HTTPS. Fixes issue #577.
4.5.0 (April 24th 2019)
- PR #551: rqlite CLI supports specifying trusted root CA certificate. Thanks @zmedico.
4.4.0 (January 3rd 2019)
- Allow the Raft election timeout to be set.
4.3.1 (October 10th 2018)
- Allow a node to be re-added with same IP address and port, even though it was previously removed. Fixes issue #534.
4.3.0 (March 18th 2018)
4.2.3 (February 21st 2018)
- PR #389: Log Store directory path on startup.
- PR #392: Return redirect if node removal attempted on follower. Fixes issue #391.
4.2.2 (December 7th 2017)
- PR #383: Fix unit tests after underlying SQLite master table changes.
- PR #384: "status" perm required to access Go runtime information.
4.2.1 (November 10th 2017)
- PR #367: Remove superflous leading space at CLI prompt.
- PR #368: CLI displays clear error message when not authorized.
- PR #370: CLI does not need to indent JSON when making requests.
- PR #373, PR #374: Add simple INSERT-only benchmarking tool.
4.2.0 (October 19th 2017)
4.1.0 (September 3rd 2017)
- PR #342: Add missing Store parameters to diagnostic output.
- PR #343: Support fetching expvar information via CLI.
- PR #344: Make read-consistency query param value case-insensitive.
- PR #345: Add unit test coverage for status and expvar endpoints.
4.0.2 (August 8th 2017)
- PR #337: Include any query params with 301 redirect URL.
4.0.1 (August 4th 2017)
- PR #316: CLI doesn't need pretty nor timed responses from node.
- PR #334: Set Content-Type to "application/octet-stream" for backup endpoint. Fixes issue #333.
4.0.0 (June 18th 2017)
The 4.0 release has renamed command-line options relative to earlier releases. This means that previous commands used to launch rqlited will not work. However the command-line changes are cosmetic, and each previous option maps 1-to-1 to a renamed option. Otherwise deployments of earlier releases can be upgraded to the 4.0 series without any other work.
- PR #309: Tweak start-up logo.
- PR #308: Move to clearer command-line options.
- PR #307: Support node-to-node encryption. Fixes issue #93.
- PR #310: HTTP service supports registration of Status providers; Mux is first client.
- PR #315: Add status and help commands to CLI.
3.14.0 (May 4th 2017)
- PR #304: Switch to Go 1.8.1.
3.13.0 (April 3rd 2017)
- PR #296: Log Go version at startup.
- PR #294: Support multiple explicit join addresses.
- PR #297: CLI should explicitly handle redirects due to Go1.8. Fixes issue #295.
3.12.1 (March 2nd 2017)
- PR #291: Don't access Discovery Service if node already part of cluster.
3.12.0 (March 1st 2017)
- PR #286: Tweak help output.
- PR #283: Main code should log to stderr.
- PR #280, PR #281: Integrate with new Discovery Service.
- PR #282: Retry cluster-join attempts on failure.
- PR #289: rqlite HTTP clients should not automatically follow redirects.
3.11.0 (February 12th 2017)
- PR #268: Allow Store to wait for application of initial logs. Fixes issue #260.
- PR #272: Add commit, branch, GOOS, and GOARCH, to output of
- PR #274: Use Hashicorp function to read peers. Thanks @WanliTian
- PR #278: Add support for dot-commands
.schemato rqlite CLI. Fixes issue #277.
3.10.0 (January 29th 2017)
3.9.2 (January 14th 2017)
- PR #253: Handle nil row returned by SQL execer. Fixes issue #253.
- PR #258: Remove check that all queries begin with SELECT. Fixes issue #255.
3.9.1 (December 29th 2016)
- PR #247: Simplify loading of SQLite dump files via single command execution. Fixes issue #246.
- PR #247: Correct SQLite dump load authentication check.
3.9.0 (December 24th 2016)
- PR #239: Add an API to the
Storelayer for custom peers storage and logging. Thanks @tych0
- PR #221: Start full support for various SQLite text types. Fix issue #240.
- PR #242: Support direct copying of the database via the Store. Thanks @tych0.
- PR #243: Use Store logging everywhere in the Store package.
3.8.0 (December 15th 2016)
- PR #230: Move Chinook test data to idiomatic testdata directory.
- PR #232, PR #233: rqlite CLI now supports accessing secured rqlited nodes. Thanks @tych0.
- PR #235: Return correct error, if one occurs, during backup. Thanks @tych0.
- PR #237, PR #238: Support observing Raft changes. Thanks @tych0
3.7.0 (November 24th 2016)
- With this release rqlite is moving to Go 1.7.
- PR #206, #217: Support loading data directly from SQLite dump files.
- PR #209: Tweak help output.
- PR #229: Remove explicit control of foreign key constraints.
- PR #207: Database supports returning foreign key constraint status.
- PR #211: Diagnostics show actual foreign key constraint state.
- PR #212: Add database configuration to diagnostics output.
- PR #224, PR #225: Add low-level database layer expvar stats.
3.6.0 (October 1st 2016)
- PR #195: Set Content-type "application/json" on all HTTP responses.
- PR #193: Allow joining a cluster through any node, not just the leader.
- PR #187: Support memory profiling.
- Go cyclo complexity changes.
- With this release Windows compatibility is checked with every build.
3.5.0 (September 5th 2016)
- PR #185: Enable foreign key constraints by default.
3.4.1 (September 1st 2016)
- PR #175: Simplify error handling of Update Peers API.
- PR #170: Log any failure to call
Serve()on HTTP service.
- Go lint fixes.
- Go cyclo complexity changes.
3.4.0 (July 7th 2016)
- PR #159: All HTTP responses set X-RQLITE-VERSION.
3.3.0 (June 1st 2016)
- PR #151: Support configurable Raft heartbeat timeout.
- PR #149: Support configurable Raft snapshot thresholds.
- PR #148: Support pprof information over HTTP.
- PR #154: CLI now redirects to leader if necessary.
- PR #155: CLI now handles "no rows" correctly.
3.2.1 (May 22nd 2016)
- PR #143: Use DELETE as HTTP method to remove nodes.
3.2.0 (May 21st 2016)
- PR #142: Use correct HTTP methods on all endpoints.
- PR #137: Use resolved version of joining node's address.
- PR #136: Better errors on join failures.
- PR #133: Add Peers to status output.
- PR #132: Support removing a node from a cluster.
- PR #131: Only convert byte from database to string if "text". Thanks @bkeroackdsc
- PR #129: Verify all statements sent to query endpoint begin with "SELECT".
- PR #141: Store methods to expose node Raft state. Thanks @bkeroack
3.1.0 (May 4th 2016)
3.0.1 (May 1st 2016)
- PR #117: Use Raft advertise address, if exists, during join.
3.0.0 (May 1st 2016)
The Raft log format in 3.0 is not compatible with the 2.0 series. To upgrade from an earlier version to this release you should backup your 2.0 leader node, and replay the database dump into a new 3.0 cluster. The HTTP API remains unchanged however.
- PR #116: Allow HTTP advertise address to be set.
- PR #115: Support advertising address different than Raft bind address.
- PR #113: Switch to in-memory SQLite databases by default.
- PR #109: Nodes broadcast meta to cluster via Raft.
- PR #109, PR #111: Leader redirection
- PR #104: Handle the
-joinoption sensibly when already member of cluster.
2.2.2 (April 24th 2016)
2.2.1 (April 19th 2016)
- PR #95: Correctly set HTTP authentication.
2.2.0 (April 18th 2016)
- PR #84: Encrypted API (HTTPS) now supported.
- PR #85: BasicAuth support.
- PR #85: User-level permissions support.
- Print rqlited logo on start-up.
- End-to-end single-node and multi-node unit tests.
2.1 (April 9th 2016)
- PR #76: Obey timing information display at database level.
- PR #77: Add version information to binary.
2.0 (April 5th 2016)
timingsURL param to control presence of timing information in response.
- PR #74: Use SQLite connection directly. Thanks @zmedico.
- Update operations return last-inserted ID.
- Column-oriented API responses.
- Types in API response body.
- Query times in addition to sum of query times.
- New Raft consensus module, built on Hashsicorp's implementation.
- Hot backup support.
- Selectable read-consistency levels of none, weak, and strong.
- SQLite file size added to HTTP API status endpoint.
- expvar support added to HTTP server.
1.0 (June 23rd 2015)
Check out this tag for full details.