For ret sync, the first results are amark/gun (Gun is a decentralized graph database and synchronization engine that provides real-time peer-to-peer data syncing, offline support, conflict resolution, and multi-device capabilities out of the box), yjs/yjs (Yjs is a CRDT-based real-time state synchronization framework providing peer-to-peer capabilities, automatic conflict resolution, offline support, and multi-device sync for collaborative applications) and pouchdb/pouchdb (PouchDB provides offline-first browser storage and CouchDB-backed synchronization for cross-device data replication, though it relies on client-server replication rather than peer-to-peer transport). livestorejs/livestore and orbitdb/orbit-db round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Compare open-source registry synchronization tools to manage and replicate container images and packages across different environments.
Gun is a decentralized graph database and synchronization engine designed for real-time, peer-to-peer data management. It functions as a JavaScript library that enables applications to maintain consistent state across distributed nodes without relying on a central server. By utilizing conflict-free replicated data types and a gossip protocol, the system ensures that data updates propagate across the network and reconcile automatically. The project distinguishes itself through a focus on decentralized identity and security, utilizing public-key infrastructure to authenticate users and sign dat
Gun is a decentralized graph database and synchronization engine that provides real-time peer-to-peer data syncing, offline support, conflict resolution, and multi-device capabilities out of the box.
Yjs is a CRDT framework and real-time state synchronization engine providing shared data types for collaborative software. It functions as a shared data type library of collaborative maps, arrays, and text structures that converge automatically across distributed clients, serving as a local-first data store and a collaborative editor backend. The system distinguishes itself through a synchronization engine that encodes document changes into commutative binary updates. It employs state-vector based differencing to transmit only missing incremental updates between peers and uses relative-positi
Yjs is a CRDT-based real-time state synchronization framework providing peer-to-peer capabilities, automatic conflict resolution, offline support, and multi-device sync for collaborative applications.
PouchDB is a JavaScript NoSQL document database that runs directly in the browser. It serves as an offline-first data store that allows applications to save state and user data locally using persistent storage. The database is compatible with CouchDB, implementing its API to enable synchronization between browser environments and remote servers. This allows for cross-device data syncing and the development of local-first software that operates without a constant internet connection. The project covers data storage and synchronization capabilities, including the ability to migrate database sc
PouchDB provides offline-first browser storage and CouchDB-backed synchronization for cross-device data replication, though it relies on client-server replication rather than peer-to-peer transport.
Livestore is a reactive state management framework that utilizes a local SQLite database to store and synchronize application data. It provides an event-sourced state store that processes typed events through materializer functions to derive and persist application state. The framework implements offline-first data synchronization using a push-pull engine and append-only event logs to maintain consistency between clients and servers. It includes a real-time presence system for tracking user activity and shared session status across connected clients. The system covers a broad capability surf
Livestore is an offline-first reactive state management framework that provides real-time state synchronization, local SQLite persistence, push-pull conflict resolution, and WebSocket transport for cross-device sync.
Orbit DB is a decentralized NoSQL database that utilizes conflict-free replicated data types to ensure eventual consistency across a network of nodes. It functions as a peer-to-peer data store that uses IPFS for content-addressing and synchronization, allowing for the maintenance of application state without a central server or authority. The system is built upon a cryptographically verifiable, immutable operation log, which serves as the foundation for custom decentralized data models. This architecture enables the implementation of various data storage patterns, including JSON document stor
Orbit DB provides decentralized peer-to-peer data storage with conflict resolution using CRDTs and IPFS, making it well-suited for synchronizing state across nodes without a central server, though it relies on IPFS rather than direct websocket transport.
Hoodie is a data synchronization framework and offline-first JavaScript backend designed to keep client-side data stores in sync with a remote backend. It provides a local-first persistence layer that allows applications to remain functional while offline by abstracting the client-side database. The system features a NoSQL backend interface that enables interaction with remote data stores without requiring custom server-side boilerplate code. This is supported by a modular driver system of pluggable backend adapters that connect the synchronization layer to various remote database providers.
Hoodie is an offline-first data synchronization framework designed to keep client-side and remote databases in sync, though it uses a client-server architecture rather than a peer-to-peer approach.
OrbitDB is a decentralized data storage system that enables the creation of serverless databases residing across a network of peers. It functions as a peer-to-peer database that integrates with a content-addressed storage layer to distribute and replicate data without a central server. The system utilizes conflict-free replicated data types to ensure eventual consistency and state convergence across distributed nodes. It maintains an immutable record of updates using a directed acyclic graph to preserve causal ordering and cryptographic integrity. Access is managed through a decentralized ide
OrbitDB is a peer-to-peer decentralized database that provides real-time state synchronization, conflict-free replicated data types for conflict resolution, and offline support across distributed nodes.
Automerge is a distributed state synchronization engine and library for conflict-free replicated data types. It enables multiple nodes to perform concurrent updates to a shared dataset while guaranteeing that all replicas eventually converge to the same state. The project provides a high-performance implementation written in Rust to manage state merging and synchronization. It employs a byte-compressed synchronization protocol to transmit minimal delta updates between peers, facilitating data consistency in peer-to-peer and real-time collaborative environments. The system covers broad capabi
Automerge is a distributed state synchronization engine and conflict-free replicated data type library that enables peer-to-peer and concurrent updates with eventual consistency across clients, though it leaves transport layers like WebSockets to be integrated separately.
ShareJS is a collaborative document database and synchronization engine designed for real-time shared state management. It provides an operational transform sync engine to enable simultaneous editing of plain-text and JSON data, and a RESTful synchronization API for managing document states via HTTP. The system features an offline-first data sync layer that queues local modifications while disconnected and automatically pushes edits upon reconnection. It also includes a middleware access control layer that intercepts database requests to enforce security policies and perform request rewriting
ShareJS is a real-time synchronization engine using operational transformation for collaborative document editing, covering offline support and conflict resolution, though it relies on a client-server architecture rather than peer-to-peer.
Loro is a conflict-free replicated data type (CRDT) framework and collaborative state engine designed for building real-time collaborative applications. It provides a distributed data synchronizer that enables multiple users to edit shared documents and complex nested structures—such as maps, lists, trees, and counters—with automatic state convergence without requiring a central server. The project distinguishes itself through a versioned document store that supports branching, forking, and merging via a directed acyclic graph of causal operation history. It enables advanced version control c
Loro is a CRDT framework that provides peer-to-peer state synchronization and conflict resolution for offline-first applications, making it well-suited for building real-time collaborative tools despite lacking built-in WebSocket transport.
Jazz is a local-first relational database and synchronization framework designed for offline-capable applications. It functions as a reactive state management system that treats database records as the primary source of truth, automatically updating user interfaces in real time as underlying data changes. The project distinguishes itself through a collaborative data synchronization model that utilizes row-level versioning to track branching edit histories. It implements a security engine based on identity-claim row security, which enforces granular permissions on individual records, and suppo
Jazz is a local-first relational database and synchronization framework that provides offline-capable persistence and real-time state management, fitting the core requirements well despite lacking explicit peer-to-peer architecture.
This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a robust framework for managing application state by synchronizing data across browsers, mobile devices, and server-side runtimes. By treating local storage as the primary source of truth, it enables applications to remain functional without network connectivity, automatically reconciling changes with remote backends once a connection is restored. The database distinguishes itself through a modular architecture that supports cross-environment synchronization and high-performance d
This offline-first NoSQL database engine provides reactive state management, multi-device synchronization, and conflict resolution, though it relies on backend databases rather than a purely peer-to-peer architecture.
TinyBase is a reactive data store and in-memory relational database designed for client-side state persistence. It serves as a local-first sync engine that merges distributed state using conflict-free replicated data types and logical clocks to ensure deterministic data convergence. The project features a schema validation library that converts external definitions from tools like Zod, Yup, and TypeBox into type-safe store definitions. It provides an infrastructure for real-time collaborative editing, utilizing synchronization with Automerge, Yjs, and PartyKit to maintain consistent state acr
TinyBase is a reactive client-side store and local-first sync engine that uses CRDTs and WebSocket integration with tools like PartyKit and Yjs to handle real-time state synchronization and conflict resolution.
BlockSuite is a collaborative block editor framework built on a hierarchical block tree data model with CRDT-based state synchronization for real-time multi-user editing. It provides an extensible block component system, allowing developers to define custom block types through declarative schemas, services, and rendering components. The editor is packaged as cross-framework web components, making it embeddable in any JavaScript environment. The framework distinguishes itself with a command-driven editing pipeline that composes type-safe editing actions with dynamic context sharing and control
This framework provides CRDT-based state synchronization for collaborative block editing and local-first data, fulfilling the real-time sync requirement even though it is specialized for document editors rather than general state.
Instant is a real-time backend as a service and relational graph database designed to synchronize data across clients automatically. It functions as a data synchronization layer that provides authentication, permissions, and relational data storage for web and mobile applications. The platform includes an optimistic UI framework that updates local interfaces immediately during writes and handles automatic server rollbacks. It also features a real-time presence system to broadcast transient user states, such as cursor positions and online status, to other connected clients. The system manages
Instant provides real-time data synchronization and optimistic UI updates for web and mobile clients, serving as a backend synchronization layer though it relies on a central server rather than peer-to-peer architecture.
Electric is a Postgres data synchronization engine and replication proxy designed to enable local-first software. It replicates data from Postgres databases to client-side stores in real time using logical replication, allowing applications to maintain a local embedded database for offline access and low-latency updates. The system distinguishes itself by using shapes to filter and authorize specific subsets of database rows and columns before streaming them to clients or edge workers. It further supports multi-user collaboration by integrating a conflict-free replicated data type framework t
This repository provides a real-time data synchronization and replication engine backed by PostgreSQL that enables local-first architectures with offline access and conflict resolution, though it relies on a central database rather than a peer-to-peer topology.
Realtime is a real-time data distribution and synchronization engine that enables applications to stream database changes and coordinate state between clients. It functions as a synchronization layer that monitors database write-ahead logs to provide change data capture and pushes updates to authorized clients via WebSockets. The project features a real-time presence server for tracking the online status of active users and a broadcast service for sending ephemeral messages without database persistence. It organizes communication through channel-based message routing and uses a structured JSO
This repository provides real-time data distribution and synchronization by streaming database changes to clients via WebSockets, fulfilling several core requirements although it relies on a central database rather than a pure peer-to-peer architecture.
deepstream.io is an open-source realtime server that synchronizes JSON records, events, and remote procedure calls across clients and backend services. It functions as a realtime data sync server, event pub/sub server, record database server, and RPC server, all within a single platform. The server authenticates and authorizes every message using multiple strategies including JWT, HTTP, and file-based credentials, with a declarative permission language controlling access to records, events, and RPCs at a granular level. The platform distinguishes itself through its combination of realtime dat
Deepstream.io is a real-time server that synchronizes JSON records and events across clients, fitting the state synchronization category well even though it relies on a server architecture rather than peer-to-peer.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| amark/gun | 19.1K | JavaScript | NOASSERTION | |
| yjs/yjs | 22.1K | JavaScript | NOASSERTION | |
| pouchdb/pouchdb |
| 17.6K |
| JavaScript |
| Apache-2.0 |
| livestorejs/livestore | 3.5K | TypeScript | apache-2.0 |
| orbitdb/orbit-db | 8.8K | JavaScript | MIT |
| hoodiehq/hoodie | 4.5K | JavaScript | Apache-2.0 |
| orbitdb/orbitdb | 8.7K | JavaScript | mit |
| automerge/automerge | 6.4K | JavaScript | MIT |
| josephg/sharejs | 5K | JavaScript | NOASSERTION |
| loro-dev/loro | 5.4K | Rust | mit |