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
- 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.
npm install @logux/core
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
}
})