opral/lix

Version control system for any file format

What it solves

Lix provides version control for non-source-code files, such as DOCX, XLSX, JSON, and PDFs. Unlike traditional version control systems that rely on text-based diffs, Lix tracks "semantic changes"—specific modifications to paragraphs, spreadsheet cells, or JSON properties—making it possible to review and merge changes in complex file formats without reading the entire file.

How it works

Lix operates as an embeddable library that runs in-process within a runtime (browser, server, CLI, or worker). It manages the version-control model—including files, blobs, and history—and exposes a SQL interface. This allows developers to query changes across branches and files using SQL instead of manually parsing files. It supports various storage backends including SQLite, Postgres, S3, and Cloudflare Workers.

Who it’s for

Lix is designed for developers building editors, knowledge bases, and AI workflows where agents or users need to track, branch, and roll back changes to structured or binary files.

Highlights

  • Semantic Tracking: Tracks changes at the entity level (e.g., a specific cell in a spreadsheet) rather than just line-by-line text.
  • SQL-Powered History: Use SQL to query exactly what changed, when, and by whom across all versions.
  • C-style Branching: Supports parallel branches for isolated drafts, users, or AI agents.
  • ACID Transactions: Ensures data integrity by allowing multiple file and history updates to be committed as a single transaction.
  • Format Agnostic: Works with any file format via plugins that translate updates into semantic changes.