noex ecosystem

noex-client

Typově bezpečné klientské SDK

Plně typovaný WebSocket klient pro noex-server s automatickým reconnectem, obnovou subskripcí, reaktivními store dotazy, proxy pro rules engine a nulovými runtime závislostmi.

Klíčové vlastnosti

Vše potřebné pro typově bezpečnou real-time komunikaci s noex-serverem

Typově bezpečné Bucket API

Generické BucketAPI<T> s plným TypeScript typováním. CRUD operace, dotazy, paginace a agregace — vše s typovou kontrolou při kompilaci.

Automatický Reconnect

Exponenciální backoff s jitterem, konfigurovatelné parametry (maxRetries, delays, multiplier). Bezešvé znovupřipojení bez manuálního zásahu.

Obnova subskripcí

Po reconnectu jsou automaticky obnoveny všechny store i rules subskripce a doručena čerstvá data. Žádná manuální resubskripce není potřeba.

Reaktivní subskripce

Real-time push notifikace pro store dotazy a rules události. Iniciální data doručena ihned po subskripci, poté živé aktualizace při každé změně.

Transakce

ACID multi-bucket transakce přes WebSocket. Atomické operace s optimistickým zamykáním, čtení vlastních zápisů a automatický rollback při konfliktu.

Rules Engine Proxy

Emise událostí, správa faktů (set/get/delete/query) a subskripce pattern-based proudů událostí — vše přes stejné WebSocket spojení.

Autentizace

Login, logout a správa sessions přes token-based auth. Auto-login při připojení i reconnectu, pokud je auth token poskytnut.

Nulové závislosti

Žádné runtime závislosti. Funguje nativně v prohlížeči a v Node.js s balíčkem ws. Minimální velikost bundlu.

Vrstvená architektura

Čistá separace zodpovědností se čtyřmi odlišnými vrstvami

API vrstva

StoreAPI, RulesAPI, AuthAPI

Subscription Manager

Registr, doručování push, resubskripce

Protocol vrstva

RequestManager + PushRouter

Transport vrstva

WebSocket, heartbeat, reconnect

Stavový automat spojení

Lifecycle události: connected, disconnected, reconnecting, reconnected, error, welcome

Request pipeline: API volání → RequestManager (korelace ID + timeout) → Transport (WebSocket send) → Směrování odpovědi

Podívejte se v akci

Reálné ukázky kódu: připojení, CRUD, subskripce, transakce a rules

client.ts
import { NoexClient } from '@hamicek/noex-client';

const client = new NoexClient('ws://localhost:8080', {
  auth: { token: 'my-secret-token' },
  reconnect: {
    maxRetries: Infinity,
    initialDelayMs: 1_000,
    maxDelayMs: 30_000,
    backoffMultiplier: 2,
    jitterMs: 500,
  },
  requestTimeoutMs: 10_000,
  connectTimeoutMs: 5_000,
  heartbeat: true,
});

const info = await client.connect();
console.log(`Connected to v${info.version}`);

client.on('reconnecting', (attempt) => {
  console.log(`Reconnecting... attempt ${attempt}`);
});

client.on('reconnected', () => {
  console.log('Connection restored!');
});

// Graceful disconnect
await client.disconnect();

Chování reconnectu

Automatické znovupřipojení s exponenciálním backoffem, jitterem a plnou obnovou subskripcí

Exponenciální Backoff

#1 ~1s
1000ms + jitter
#2 ~2s
2000ms + jitter
#3 ~4s
4000ms + jitter
#4 ~8s
8000ms + jitter
#5 ~16s
16000ms + jitter
#N max 30s
omezeno na maxDelayMs

Konfigurace

maxRetries Infinity

Maximální počet pokusů o reconnect

initialDelayMs 1000

Základní prodleva před prvním opakováním

maxDelayMs 30000

Maximální prodleva

backoffMultiplier 2

Exponenciální násobitel

jitterMs 500

Náhodný jitter přidaný k prodlevě

Flow obnovy subskripcí

1
Reconnect
2
Re-autentizace
3
Resubskripce všeho
4
Doručení čerstvých dat

Vypnutí reconnectu: reconnect: false

Srovnání

noex-client vs populární real-time klientská SDK

Featurenoex-clientSocket.IO ClientSupabase JSFirebase JSAbly Realtime
Typově bezpečné generické APIBucketAPI<T>Generované typyNetypované
Auto obnova subskripcí
ACID transakceMulti-bucket přes WSPostgres transakce
Rules Engine Proxy
Reconnect s backoffem
Auto-login při reconnectu
Reaktivní query subskripceConvex-style pushManuální roomsPostgres změnyRealtime syncPub/sub
Správa faktůSet/get/delete/query
Runtime závislostiNulovéengine.io-client +MnohoMnohoMnoho
Prohlížeč + Node.js
StavAktivníAktivníAktivníAktivníAktivní

Čím je noex-client unikátní

Typově bezpečné generické API

BucketAPI<T> poskytuje typovou kontrolu při kompilaci na každé CRUD operaci, dotazu a agregaci. Žádné runtime neshody typů.

Automatická obnova subskripcí

Při reconnectu jsou automaticky obnoveny všechny aktivní store i rules subskripce. Čerstvá data jsou doručena bez jakékoli manuální logiky resubskripce.

Integrovaný Rules Engine

Jediné klientské SDK s vestavěným přístupem k rules enginu. Emitujte události, spravujte fakta a odebírejte pattern-matched rule eventy přes stejné spojení.

ACID transakce přes WebSocket

Multi-bucket atomické transakce s optimistickým zamykáním, odeslané jako jediná zpráva. Čtení vlastních zápisů a automatický rollback při konfliktu.

Nulové runtime závislosti

Žádné tranzitivní závislosti k auditu nebo aktualizaci. Funguje nativně v prohlížečích a v Node.js jen s balíčkem ws jako peer dependency.

Začněte budovat typově bezpečné real-time aplikace

Přidejte noex-client do svého projektu během vteřin

npm install @hamicek/noex-client
$ npm install @hamicek/noex-client

Vyžaduje běžící noex-server. V Node.js nainstalujte ws jako peer dependency.

Podpořte projekt

Líbí se vám noex? Pomozte nám pokračovat ve vývoji

Bitcoin
Bitcoin QR Code