Browser-scale structured data

Open massive structured datasets instantly in the browser

Stream, filter, and explore GB-scale structured data without JSON hydration bottlenecks, browser freezes, or memory blowups.

BuildPassingConformance10 languagesSpecv1.2.1MCPAgent-native

See it work — log explorer

Scroll, search, and jump across millions of rows in the browser. The Explorer is the fastest way to feel the difference — no install, built-in fixtures up to 10M records.

Immediate
Time to first scroll on streamed .nxb — before download finishes
142 µs
Time to first record P50 — streamable row layout (Workload D)
~0 MB
Extra heap for multi-GB files — viewport-only decode vs full JSON graph

Interactive browser benchmarks · full methodology · why JSON breaks at scale

Why JSON breaks in the browser

Modern observability and ops UIs ship multi-hundred-megabyte JSON exports. The pain is familiar before any wire format debate.

Full constraint breakdown →

Outcome comparison

Compare what users experience — not which ecosystem you must rip out.

Workflow momentJSON in the browserNyxis .nxb
Open a large exportWait for full download + parseHeader + tail-index — stream rows as bytes arrive
First interactionOften 10–15+ seconds on 100 MB+Scroll and search while the file is still loading
Filter / searchScan in-memory object graphSelective field reads + worker-backed index
Memory at 1M+ rowsFull dataset on the heapViewport pool — only visible rows decoded

How Nyxis solves it

Nyxis moves parsing cost from query time to compile time. Human-readable .nxs compiles to memory-mapped .nxb with a tail-index for O(1) record seeks — readers use zero-copy selective access instead of materializing entire documents.

  • Zero-copy readsmmap-friendly wire cells; decode only the fields you touch.
  • Selective access Tail-index jumps for virtual scroll, search, and agent field extraction.
  • Streamable v1.2 Emit records before the footer seals; WAL mode for append-heavy ingest.
  • Bimodal workflow Git-diffable .nxs source; production .nxb for browsers and services.
Edge / app writes .nxsCompiler + drivers produce .nxbBrowser / BI / agents query without full decode

Three layouts, three workloads

Pick row, columnar, or pax at compile time — not one layout for every problem. Layout selection guide →

ROW

Row .nxb

Stream records as they arrive. O(1) seek via tail-index after seal. Sub-µs warm access to any field.

7 µs TTFR P50 (EPYC) · 37 µs Haswell

Virtual scroll · log explorers · APM traces · ticker updates

COL

Columnar .nxb

Field buffers for charts and aggregates. No per-record traversal for column scans.

1.3× Arrow IPC on EPYC · 1.7× Apple Silicon

OLAP · export pipelines · CSV → chart demo

PAX

PAX .nxb

Page-oriented hybrid: scroll rows and scan columns from one sealed file (SPEC §4.5).

Workload E · page_size ≥ 32,768 on x86 server

Dashboards that mix virtual scroll with column charts

Sigil-typed source

user {
  id = 42
  name "ada_lovelace"
  score ~ 98.6
  active ? true
}

Every value in .nxs carries a sigil that declares its binary encoding. The source file is the schema — no separate IDL. Compile once; warehouses and UIs read aligned cells for the lifetime of the payload.

Built for these jobs

Stream, then seal

Producers emit aligned .nxb bytes while a segment is still open. Readers parse complete records as they arrive and only need the footer tail pointer once the writer seals the file.

Honest benchmarks

Workflow metrics first — time to interactive, filter latency, browser memory — then raw throughput vs Protobuf, FlatBuffers, Cap'n Proto, and Arrow. We publish losses where NXS is not the winner. Interactive charts · BENCHMARK.md.

More demos

Enterprise extensions

Core compiler and ten MIT SDKs are free for production within BSL limits. Closed-source extensions add multi-terabyte compaction, Arrow bridges, schema registry, and encrypt-at-rest operations.

Core: BSL 1.1 (free under $5M revenue / 10 TB per month). SDKs: MIT.