Logux is a new way to connect client and server. Instead of sending HTTP requests (e.g., AJAX and GraphQL) it synchronizes log of operations between client, server, and other clients.
- Guide, recipes, and API
- Chat for any questions
- Issues and roadmap
- Projects inside Logux ecosystem
This repository contains Logux core components for JavaScript:
Log
to store node’s actions.MemoryStore
to store log in the memory.BaseNode
,ClientNode
, andServerNode
to synchronize actions from Log with other node.isFirstOlder
to compare creation time of different actions.WsConnection
,Reconnect
, andServerConnection
to connect nodes via WebSocket.TestLog
,TestPair
,TestTime
, andeachStoreCheck
to test Logux application.
Install
npm install @logux/core
Usage
See documentation for Logux API.
import { ClientNode, TestTime, TestLog, TestPair } from '@logux/core'
let time = new TestTime()
let pair = new TestPair()
let node = new ClientNode('client:test', time.nextLog(), pair.left)
import { isFirstOlder } from '@logux/core'
let lastRename
log.type('RENAME', (action, meta) => {
if (isFirstOlder(lastRename, meta)) {
changeName(action.name)
lastRename = meta
}
})