v0.2.0
Overview
The v0.2.0 release primarily focuses on stability and hardening, however, it also includes a few important features. This release is also marks the end of the alpha phase of LiteFS and it is now considered "beta" software. It should generally run well, however, please report bugs to the GitHub repository.
Major features
Candidacy
By default, every node in the cluster can become the primary node. However, moving a primary from one region to another can change performance characteristics significantly so it may be useful to only allow certain nodes to become primary. You can now set the candidate flag in the config to false for any nodes which should not become primary:
candidate: false
Static Lease
LiteFS uses Consul to dynamically change the current primary in the cluster on the fly. However, for users that do not wish to run Consul, they can set a single fixed primary node. This is similar to how Litestream's read replication was meant to work. Please see https://github.com/superfly/litefs/pull/47 for more details.
Pull Requests
- Upgrade to LTX v0.2.0 in https://github.com/superfly/litefs/pull/45
- Implement candidacy in https://github.com/superfly/litefs/pull/46
- Implement static lease in https://github.com/superfly/litefs/pull/47
- Return ENOSYS for xattr requests by @darthShadow in https://github.com/superfly/litefs/pull/51
- Implement database snapshot to LTX in https://github.com/superfly/litefs/pull/53
- Update contribution policy in https://github.com/superfly/litefs/pull/54
- Retention enforcement in https://github.com/superfly/litefs/pull/57
- Implement statfs() callback in https://github.com/superfly/litefs/pull/58
- Support non-default page size in https://github.com/superfly/litefs/pull/59
- Expose DB position via FUSE in https://github.com/superfly/litefs/pull/60
- Optional registration of Consul node in https://github.com/superfly/litefs/pull/63
- Use default consul key, if not specified in https://github.com/superfly/litefs/pull/65
- Return hostname in primary file in https://github.com/superfly/litefs/pull/66
- Metrics in https://github.com/superfly/litefs/pull/67
- Update lock delay to 5s in https://github.com/superfly/litefs/pull/68
- Set hostname env variable, if unset in https://github.com/superfly/litefs/pull/69
- Default Advertise URL in https://github.com/superfly/litefs/pull/70
- Add configurable data directory in https://github.com/superfly/litefs/pull/71
- Rename pprof import in https://github.com/superfly/litefs/pull/72
- Fix database locks to use LockOwner in https://github.com/superfly/litefs/pull/74
- Atomically write LTX files on commit in https://github.com/superfly/litefs/pull/78
- Add unique, persistent node ID in https://github.com/superfly/litefs/pull/79
- Disconnect streams when primary status changes in https://github.com/superfly/litefs/pull/80
- Add DB nil check on HTTP server in https://github.com/superfly/litefs/pull/81
- Remove GITHUB_TOKEN & Makefile in https://github.com/superfly/litefs/pull/82
- Add staticcheck CI in https://github.com/superfly/litefs/pull/83
- Add errcheck to CI in https://github.com/superfly/litefs/pull/84
- Wait for ready state on startup in https://github.com/superfly/litefs/pull/85
- Ensure node does not startup if LTX files are invalid in https://github.com/superfly/litefs/pull/86
- Minor CI tweaks in https://github.com/superfly/litefs/pull/87
- Disable poll() in FUSE layer in https://github.com/superfly/litefs/pull/88
- Verify all LTX files on startup in https://github.com/superfly/litefs/pull/89
- Verify database checksum on startup in https://github.com/superfly/litefs/pull/90
- Fix locking on LTX apply in https://github.com/superfly/litefs/pull/91
- Verify txid/checksum on LTX frame in https://github.com/superfly/litefs/pull/92
- Add long-running, functional test in https://github.com/superfly/litefs/pull/93
- Fix http log formatting in https://github.com/superfly/litefs/pull/94
- Skip LTX checksum check on snapshot in https://github.com/superfly/litefs/pull/95
- Document 'exec' field in config in https://github.com/superfly/litefs/pull/97
- Fix LTX checksum on VACUUM in https://github.com/superfly/litefs/pull/98
- Refactor GitHub Actions in https://github.com/superfly/litefs/pull/99
- Mark ready after initial replication set in https://github.com/superfly/litefs/pull/100
- Fix FUSE return so replicas report a SQLITE_READONLY error in https://github.com/superfly/litefs/pull/101
- Remove DBID in https://github.com/superfly/litefs/pull/102
- Refactor RWMutex & RWMutexGuard in https://github.com/superfly/litefs/pull/103
- Move CI timeout to 'go test' command in https://github.com/superfly/litefs/pull/104
- Use HTTP/2 for internal endpoints in https://github.com/superfly/litefs/pull/106
- Require explicit data directory in https://github.com/superfly/litefs/pull/109
- Only release amd64 and arm64 in https://github.com/superfly/litefs/pull/110
New Contributors
- @darthShadow made their first contribution in https://github.com/superfly/litefs/pull/51
Full Changelog: https://github.com/superfly/litefs/compare/v0.1.1...v0.2.0
Fetched April 3, 2026


