cr-sqlite is a run-time loadable extension for SQLite (and libSQL) that lets separate copies of a database, each of which has taken independent writes while offline, be merged without conflict. A table is upgraded into a 'conflict-free replicated relation' with one function call; the extension then exposes a virtual table of changes that one peer can read and another can apply, and applies column-level conflict resolution so every replica converges. The project calls this 'like Git, for your data'. It does not include networking: the application moves change sets between devices or a server by whatever means it likes. It is one component of the broader Vulcan project from Vulcan Labs, which also lists a reactive-query engine and a web stack built on SQLite as a collaborative application file format .
LicençaPermissive (MIT). https://github.com/vlcn-io/cr-sqlite (C extension with Rust and Python tooling)
Status de Dev 🟢 Ativo
ProprietárioVulcan Labs, the home of the vlcn.io site, whose footer names One Law LLC; the repository is owned by the vlcn-io organisation and the account that created the project (GitHub handle tantaman) is still the committer of recent merges
Órgão de GovernançaVulcan Labs (One Law LLC named in the site footer); no external governance body is described
País Not stated by the project.
Ano de Início 2022
StackC extension for SQLite and libSQL, with Rust and Python components, WebAssembly builds for the browser through the vlcn.io tooling, and loadable builds for macOS, Linux, Windows, Android and iOS
FinanciamentoSponsorships: the README and site list company sponsors (including a database company, a hosting provider and an app platform) and individual sponsors
Armazenamento local-first Edição livre de conflitos Portabilidade de dados
Protocolo de Dados Descentralizado Atributos
OrigensLocal-first and offline-first application development: bring multi-master replication and partition tolerance to SQLite using CRDTs and causally ordered event logs, so application developers need no custom merge code for offline editing, device sync and real-time collaboration
Banco de DadosSQLite (and libSQL): cr-sqlite is an extension to an existing SQLite database rather than a database of its own; upgraded tables add clock tables and the crsql_changes virtual table
Linguagem de ConsultaSQL: changes are read and applied with ordinary SELECT and INSERT against the crsql_changes virtual table, and tables are upgraded with a crsql_as_crr function call
Formatos de DadosSQLite database files; change sets as rows of (table, primary key, column id, value, column version, database version, site id, causal length, sequence) returned by crsql_changes
Edição Colaborativa em Tempo RealPartial: the extension merges independent edits to SQL tables without conflict and supports real-time collaboration when an application sends changes continuously; it has no text-editing algorithm in its core README, but lists sequence CRDTs in its documentation
Edição de Texto Rico Not stated by the project.
Suporte MóvelYes: loadable extension builds for Android and iOS are produced by the project, with build fixes merged in 2026
Suporte WebYes: the project's documentation covers use in the browser through WebAssembly and browser persistence
Aplicativos NativosYes: run-time loadable extension for desktop and mobile native applications
TermosFree and open source (MIT)
Fundos Not stated by the project.
Baseado EmSQLite and libSQL, and CRDT research; the README cites causally ordered event logs and CRDTs as its two approaches to conflict resolution
Arquitetura P2PTransport-agnostic replication: peers or a server exchange change sets read from and written to the crsql_changes virtual table by application code; the documentation describes whole-database and partial sync patterns but the project ships no network layer
Rede de SobreposiçãoNone: no network is defined; replicas sync through whatever transport the application provides
Endereçamento por ConteúdoNo: rows are identified by table and primary key with per-site identifiers and version counters
Local-FirstLocal-First: each replica is a normal local SQLite database that can be read and written offline and merged later
Criptografia de Ponta a Ponta (E2EE)No: the extension does not encrypt data; encryption is left to the application or storage layer
Biblioteca de CRDTscr-sqlite: this entry is itself the CRDT layer for SQLite; its documentation describes table, column and sequence CRDTs
Tolerância a Falhas BizantinasNo: change sets are applied as presented; the README describes no defence against malicious peers
AssinaturaN/A: change rows carry a site identifier but are not signed
PermissõesN/A: no access-control model; any peer that can write the change table can apply changes
Compatibilidade com a Web SemânticaN/A: relational model with no RDF or linked-data layer
Contrato InteligenteN/A: no ledger or contract component
Posição na Pilha de ProtocoloApplication-layer: an in-process database extension, independent of the transport
Incorporação de Ativo / ValorNone: no token or value-transfer mechanism
Maturidade / Padronização do ProtocoloPre-1.0 (v0.16.3) extension; the change-set format is documented in the README but has no formal specification or standards-body involvement
Viu algo faltando ou que poderia ser melhorado? Nos diga →