<img src='https://raw.githubusercontent.com/local-first-web/branding/main/svg/state-h.svg' width='600' alt="@localfirst/state logo" />
@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.
π‘ Read more
This library provides two services:
π‘ Read more
Two demo React applications are included:
|
|
yarn add @localfirst/state
import { 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
<Provider store={store}>
<App />
</Provider>
)
}
π‘ 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.