Make JSON lighter & faster to read

Instead of zipping the whole text, we store JSON by columns. Then we can read only the fields we need.

Full text

  • • All fields travel together
  • • Must inflate everything to read 1 field

Columnar

  • • Each field stored separately
  • • Can read only the fields you need

json-ultra-compress does this for JSON & NDJSON (logs).

Choose dataset size

Pick up to 3 for fastest partial reads

NDJSON works best for columnar compression. One JSON per line.

Gzip = best tiny package, but you still unpack everything to eat one cookie.

Ultra selective = just take the 2 cookies you want; no need to open the whole jar.

Method Compressed size (wire) Decoded size (JSON text) Time (ms) Fields read / total Actions

How to read this:

  • Gzip/Brotli: smallest wire size on some data, but you must inflate & parse 100% every time.
  • Ultra (full): similar ratios, usually much faster encode/decode.
  • Ultra (selective): fetch only the fields you need.
    • – On tiny samples it may look "bigger" because we output plain JSON for the selected fields.
    • – On real logs/analytics (MB–GB), skipping unused fields saves 70–90% bandwidth & CPU.