基于 Redux 的本地优先软件状态容器,提供使用 Automerge CRDT 实现无缝同步。 (原名为 Cevitxe)。
@localfirst/state is an automatically replicated Redux store that gives your app offline
capabilities and secure peer-to-peer synchronization superpowers.
Work in progress
Distributed, offline-first technologies are promising for a lot of reasons, but they're unfamiliar to most web application developers. This library provides offline storage and peer-to-peer synchronization capabilities, and exposes them via a familiar Redux store that can be used in a vanilla JS, React, or Electron application.
This library provides two services:
Two demo React applications are included:
todo
An implementation of TodoMVC
To run: yarn dev:todo:start
grid
A simple table editor
To run: yarn dev:grid:start
yarn add @localfirst/stateimport { StoreManager } from '@localfirst/state'
import { Provider } from 'react-redux'
const storeManager = new StoreManager({
// Pass your reducers
proxyReducer,
// Pass an initial state, just like you would for Redux
initialState: {
todoList: [],
todoMap: {},
filter: ALL,
},
})
export const Index = () => {
// Obtain a Redux store
const store = storeManager.createStore(discoveryKey)
return (
// Pass the store to your app
)
} More on how to use @localfirst/state in your app
This library requires that the entire repository be present on each peer's machine. That means that it is limited to datasets that can fit comfortably within the disk space on a single computer. In 2019, that means something on the order of 1-10 GB.
All of these projects are working in similar problem space, in JavaScript. All work in Node.js and the browser unless otherwise noted.
暂无开放 Issues,或尚未同步最近议题。