Documentation
5-minute quickstart
Reach first interaction in the browser fast. Nyxis ships as a single ES module — no build step required for the MIT JavaScript reader.
Install the browser SDK
Copy nxs.js from nyxis-drivers/js or serve it from your app at /sdk/nxs.js (as on this site). Node.js 18+ and modern browsers supported.
# From your app (Vite, Next, etc.)
# vendor copy or alias:
# import { NxsReader } from "./vendor/nxs.js"
# Optional: WASM compile-in-browser (for .nxs source)
# bash nyxis-drivers/js/build_compile_wasm.shOpen, filter, render
import { NxsReader, NxsStreamReader } from "./nxs.js"; // Open — tail-index only; no full-file parse const reader = await NxsReader.open("/data/logs.nxb"); // Filter — walk with cursor (or colSumF64 on columnar layout) const cur = reader.cursor(); let hits = 0; for (let i = 0; i < reader.recordCount; i++) { cur.seek(i); if (cur.getF64("score") > 80) hits++; } // Render — prefetch viewport for virtual scroll await reader.prefetch_viewport(0, 49); for (let i = 0; i < 50; i++) { const row = reader.record(i); mountRow(i, row.getStr("username"), row.getF64("score")); } // Stream — rows before download finishes const sr = new NxsStreamReader({ onRecord(obj, idx) { appendRow(idx, obj); }, }); const res = await fetch("/data/stream.nxb"); const body = res.body.getReader(); while (true) { const { done, value } = await body.read(); if (done) break; sr.push(value); } const sealed = sr.finish();
Frontend patterns
- React / Vue tablesFixed row pool +
prefetch_viewport— see the log explorer. - Virtualized listsTail-index seeks map scroll position to record index without a million DOM nodes.
- Web WorkersSearch and aggregate off the main thread; hand off via
SharedArrayBufferwith COOP/COEP — workers demo. - Electron & desktop shellsSame reader in Node (
readFileSync) or Chromium — mmap-friendly cold opens. - Streaming UIs
NxsStreamReaderfor live reports and tailing WAL segments before seal. - Browser analyticsColumnar
.nxb+colSumF64for chart data without JSON reduce loops — report demo.