Hacker ApprovedDepartments

RX random-access JSON format

Ranked 7 of 9 serialization formats by recommenders

Developers recommend it as a compact, random-access format for embedded data, with fast key lookups. Critics say it is not a drop-in JSON.parse replacement and the docs need work.

Developers recommend it as a compact, random-access format for embedded data, with fast key lookups. Critics say it is not a drop-in JSON.parse replacement and the docs need work.

24 people gave an opinion

recommend it
11
criticize it
13
approval share
46%
Each figure is one person. RecommendsCriticizes

Recommended in 4 of 13 months

  1. November 2025: not recommended
  2. December 2025: recommended
  3. January 2026: recommended
  4. February 2026: not recommended
  5. March 2026: recommended
  6. April 2026: not recommended
  7. May 2026: not recommended
  8. June 2026: not recommended
  9. July 2026: recommended
  10. August 2026: not recommended
  11. September 2026: not recommended
  12. October 2026: not recommended
  13. November 2026: not recommended (month in progress)

Why it doesn’t carry the badge

  • 11 people recommend itNeeds 10 or more, met.
  • 0.8 recommenders for every criticNeeds 2 to 1 or better, not met.
  • Recommended in 4 of 13 monthsNeeds 4 or more, met.

The same three rules apply to every product, and the badge can’t be bought. How the badge works

What people say about it

The reasons people give, with the number of comments that give each one. Open a reason to read what they said.

Why people recommend it

Each mark is one comment

  • Works well as embedded read-only data

    “This format really excels for use cases where large read-only build artifacts are queried by worker nodes like an embedded database.”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “rx works very well as a kind of embedded database like sqlite, but completely unstructured like JSON”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “this would work very well for any case where you have embedded databases of unstructured data”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”
  • Fast selective access and key lookups

    “Low heap allocations when reading values is one of the main driving factors in this design!”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “rx preserves object key order, but still implements O(log2 N) lookups for object keys.”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “That's the part where something like RX with selective access actually matters.”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”
  • Works as a standalone format

    “when I realized it's actually a good standalone format”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “it was actually a pretty good standalone format”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”
  • Built-in queries and JSON support

    “It has jq like queries built in and supports inputs with either rx or json.”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “RX can represent any value JSON can represent.”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

What people warn about

Each mark is one comment

  • Hard to read by hand

    “That kind of feels a bit worst of both worlds. None of the space savings/efficiency of binary but also no human readability.”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “And to consider that anyone else would fill their brain with the rules to decipher that”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “Came to the same conclusion the moment I had to hunt to see the outputs”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”
  • Docs unclear or incomplete

    “The documentation reference a “decode” function, and it’s imported to the example code, but it’s never called.”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “It doesn't seem the actual serialization format is specified?”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “it might be a matter of cleaning up the docs a bit”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

Other serialization formats people recommend

The four most recommended other serialization formats, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.

RX random-access JSON format compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
Protocol Buffers (protobuf)776654%1010 yrs3 owners—
Serde221658%10——
Cap'n Proto20580%7—Approved
Protobuf192543%8——
RX random-access JSON formatThis page111346%4——
See all 9 serialization formats, ranked

What people said

40 of the 44 comments that mention it, newest first. Each links to the original comment.

“when I load a 192kHz recording to izotope RX I can literallu see the harmonics going up to 96kHz”

MixedComment from 2 Jul 2026 in “24-bit/192kHz music downloads and why they make no sense”

“I find Rx (js, java, C#, etc) to be overly complicated in general.”

CriticizesComment from 31 May 2026 in “Ask HN: What happened to Reactive Programming?”

“I started out with binary encodings first, but then realized it limits so many workflows.”

RecommendsComment from 20 Mar 2026 in “RX – a new random-access JSON alternative”

“Very similar to bittorrent's bencode. That has the benefit that it has a canonical encoding which this doesn't”

MixedComment from 20 Mar 2026 in “RX – a new random-access JSON alternative”

“And to consider that anyone else would fill their brain with the rules to decipher that”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“RX, however matches Lua/LuaJIT extremely well and should out-perform the JS Proxy based decoder using metatables.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“RX can represent any value JSON can represent.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“That benchmark is a fair comparison for a real-world production workload and use case.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“there are cases where JSON is currently used where this is much better”

MixedComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“it was actually a pretty good standalone format”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“rx preserves object key order, but still implements O(log2 N) lookups for object keys.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“it might be a matter of cleaning up the docs a bit”

MixedComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“The current implementation is pretty close to ideal when deciding to use this encoding.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“this would work very well for any case where you have embedded databases of unstructured data”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“This system with RX will work better because I get the indexes built-in to the data file”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“It's the unique combination of properties that makes it interesting.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“The documentation reference a “decode” function, and it’s imported to the example code, but it’s never called.”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“The 23,000x faster single-key lookup seems a bit misleading to me.”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“I was instantly suspicious that a “new better format” for serialization didn’t open with the input/output.”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“this is exactly the kind of use case that caused me to design this format”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“Low heap allocations when reading values is one of the main driving factors in this design!”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“when I realized it's actually a good standalone format”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“But with this format, I can use the text as-is with zero preprocessing and as a bonus my datasets are 18x smaller.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“for my use cases, this is actually better”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“rx works very well as a kind of embedded database like sqlite, but completely unstructured like JSON”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“Also note it stores decimal in a very compact encoding (two varints for base and power of 10)”

MixedComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“It's also quite odd to create a serialization format optimized for random access.”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“same document as my json compressed to 110kb, so this is not great... 2x the size of json after compression”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“Came to the same conclusion the moment I had to hunt to see the outputs”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“It doesn't seem the actual serialization format is specified?”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“lets you read it without putting all the entities on the heap”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“That's the part where something like RX with selective access actually matters.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“The viewer is cool, took me a while to find the link to it though”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“That kind of feels a bit worst of both worlds. None of the space savings/efficiency of binary but also no human readability.”

CriticizesComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“It has jq like queries built in and supports inputs with either rx or json.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“This format really excels for use cases where large read-only build artifacts are queried by worker nodes like an embedded database.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“it is not in fact a drop in replacement for JSON.parse”

MixedComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“usually easier to read, write and maintain than regexp strings”

MixedComment from 28 Jan 2026 in “Use "\A \z", not "^ $" with Python regular expressions”

“Rx in particular tends to exceed that budget pretty quickly.”

CriticizesComment from 3 Jan 2026 in “Show HN: FP-pack – Functional pipelines in TypeScript without monads”

“were pretty useful in this regard”

RecommendsComment from 23 Dec 2025 in “Our New Sam Audio Model Transforms Audio Editing”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.