Repository navigation
Improvements
- New SQL APIs:
query()andqueryOne()for reads,stream()for large local reads, andexecuteMany()for bulk writes. Use transactions for atomic writes and consistent reads across several statements. - Faster file opening and synchronization in large repositories, with lower memory use and more responsive reads while synchronization is running.
- SQL supports file checksums with
encode(sha256(content), 'hex'), plusUPDATEandDELETEpredicates containing subqueries.
Fixes
- Fixed upgrades of older repositories that failed while verifying historical commits. Upgrades preserve stored data, offline access, and pending local edits.
- Improved recovery from interrupted synchronization, cancelled requests, and closed browser tabs. Closing or deleting a repository no longer blocks unrelated requests.
- Fixed filesystem deletion crashes and compilation failures in Rust applications installing Lix without an existing lockfile.
Upgrade notes
- JavaScript reads return plain object rows. Replace
executeBatch()withlix.transaction();rowModeis removed. Bind JSON parameters explicitly withjson(value)orValue.jsonb(value). - Buffered results are limited to 64 MiB by default. Use
stream()for large local reads or adjustmaxBytes. Transaction, file-content, and partial-replica streams still buffer under that limit; remote handles usequery()rather thanstream(). - Rust queries and writes use builders such as
lix.query(sql).params(params).all().await. - Upgrade clients and servers together. Supported older repositories upgrade during opening without resetting their data. Custom storage providers must implement the updated read contract.
See the JavaScript API, Rust quickstart, and migration guide for details.
Prebuilt filesystem storage packages are available for Linux x64, Linux ARM64, and macOS ARM64. Windows x64 packages are no longer released. Browser and in-memory SDK use on Windows remains supported.