finds.dev

creationix/rx

RX encoder, decoder, and CLI data tool

View on GitHubHomepage ↗

★ 383TypeScriptMITupdated Oct 2026

// the take

RX is a TypeScript library and CLI that encodes JSON-shaped data into a compact byte format you can query in place — no parse step, just direct reads off a Proxy over the buffer. It's aimed at write-once, read-sparse data like build manifests, route tables, or deploy artifacts, where full JSON parsing is the actual bottleneck.

The core trick is real and well-demonstrated: automatic pointer dedup, shared object schemas, prefix-compressed strings, and optional sorted indexes for O(log n) key lookup, backed by an actual benchmark (92MB JSON manifest down to 5.1MB, 69ms parse down to 0.003ms lookup) rather than a hand-wavy claim. It ships two API layers — a Proxy that mimics plain JS objects so existing read paths mostly just work, and a lower-level cursor/inspect API for zero-allocation traversal when you need it. The text encoding is copy-pasteable and embeddable in logs or strings, with a binary sibling (RXB) for when you don't need that property. CLI tooling is more complete than you'd expect from a repo this size — streaming conversion, tree/json/rx/rxb output formats, shell completions.

It's a read-only structure by design: any mutation means re-encoding the whole document, so this is a bad fit for anything beyond write-once/read-many — the README is upfront about this but it rules out a lot of use cases people will be tempted to try anyway. The text format isn't human-readable like JSON, so debugging depends on either the CLI or an external website (rx.run) — if that site goes away you're reading right-to-left base64 varints by hand. At 383 stars and 7 forks with what looks like a single maintainer, this is a brand-new, bespoke format with no production track record outside the author's own benchmark — adopting it means betting on continued maintenance of a one-person project. It's JS/TS-only; there's no indication of readers in other languages, so if your manifest needs to be read from a Go or Python service you're writing a decoder for a custom format yourself.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
383
Forks
7
Language
TypeScript
License
MIT
Last commit
1 Oct 2026

// nearby

If rx isn't quite it.

All repos →