Skip to content
/ core Public

Logux core components for JavaScript

License

Notifications You must be signed in to change notification settings

logux/core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7489218 · Aug 6, 2024
Aug 5, 2024
Mar 11, 2024
Aug 5, 2024
Mar 11, 2024
Mar 11, 2024
Jul 19, 2023
Mar 11, 2024
Aug 5, 2024
Mar 11, 2024
Mar 11, 2024
Aug 5, 2024
Mar 11, 2024
Mar 11, 2024
Mar 11, 2024
Mar 11, 2024
Mar 11, 2024
Mar 11, 2024
Mar 11, 2024
Mar 11, 2024
Jul 19, 2023
Mar 11, 2024
Mar 11, 2024
Jul 19, 2023
Aug 5, 2024
Jun 22, 2018
Dec 23, 2021
Jan 5, 2022
Aug 6, 2024
Jun 22, 2018
Aug 4, 2023
Aug 5, 2024
Mar 11, 2024
Jul 19, 2023
Aug 6, 2024
Aug 5, 2024
Jul 20, 2021

Repository files navigation

Logux Core Cult Of Martians

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.

This repository contains Logux core components for JavaScript:

  • Log to store node’s actions.
  • MemoryStore to store log in the memory.
  • BaseNode, ClientNode, and ServerNode to synchronize actions from Log with other node.
  • isFirstOlder to compare creation time of different actions.
  • WsConnection, Reconnect, and ServerConnection to connect nodes via WebSocket.
  • TestLog, TestPair, TestTime, and eachStoreCheck to test Logux application.
Sponsored by Evil Martians

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
  }
})