A JSON viewer that survives large files. Streams and indexes multi-gigabyte JSON and NDJSON entirely on your machine.
Users
3
−3 in 30 days
Rating
0.0 / 5
unchanged in 30 days
Ratings
0
0 in 30 days
Store rank
#343K
#265K among extensions
Version
0.1.0
updated 10 Aug 2026
Users
monthly, 2 months
Latest, 15 Oct 2026:3 usersMove the mouse over the chart for any month
Ratings count
monthly, 2 months
Latest, 15 Oct 2026:0 ratingsMove the mouse over the chart for any month
The Chrome Web Store rounds user counts down to the leading digit, so the user line moves in steps. The ratings count is exact and is the better signal of real adoption.
About Leviathan
Every JSON viewer in your browser does the same thing: JSON.parse(await file.text()).
That holds your file as a UTF-16 string at twice its size, then builds an object graph three to ten times larger again. A 500 MB file asks for several gigabytes on the main thread, and the tab dies.
Leviathan never parses the file into a value. It indexes it.
A Rust engine compiled to WebAssembly streams the file in a Web Worker and records only where each node starts — 8 bytes each, 14 MB of index for a 500 MB file. Key names and values are re-read from the file at the moment a row is painted: microseconds each, instead of gigabytes to store them.
MEASURED, NOT CLAIMED
• 8 GB NDJSON: 28.2 million records indexed in 17.8 seconds, using 539 MB
• Fifty rows from record 28,239,470: 2.5 milliseconds
• 500 MB: first rows painted in 141 ms, indexed in 3.6-6.8 seconds, 22 MB of memory
• Scrolling 100,000 rows: median 16.6 ms per frame, zero long tasks
• A filter across 1.77 million records: 8.7 seconds, interactive throughout
Every figure comes from running the shipped engine against a generated fixture. The full table, including the one criterion that is missed and the file shape that does not fit, is in the README.
WHAT IT DOES
• View — virtualized tree, breadcrumb, full keyboard navigation, dark mode
• Find — literal search across the whole file, streamed, not just what is on screen
• Filter — @.status == "error" && @.latency_ms > 1000, evaluated per record
• Validate — byte, line and column accurate errors you can jump to, plus JSON Schema
• Duplicates — repeated object keys, which are valid JSON that every parser resolves differently and nothing else warns you about
• Export — JSON, NDJSON or CSV, streamed to disk, byte-faithful
It survives broken files too. A truncated dump, one bad escape at 90% depth, a log rotation mid-record: every stage degrades instead of aborting. "It won't open" is the failure mode of the tools this replaces.
ZERO PERMISSIONS
Check the permissions list above: it is empty. Not "minimal" — empty. A Chrome extension cannot make a cross-origin request without a host permission, and this one declares none, so "your data never leaves your machine" is something you can verify in about ten seconds rather than something you have to believe.
That costs a feature: Leviathan cannot fetch a URL you paste, because fetching one would need exactly the permission that makes the sentence above checkable. Download the file and drop it in.
OPEN SOURCE
MIT OR Apache-2.0. The engine is published separately on crates.io and npm, so you can use it without the extension.
https://github.com/shadkhan/leviathan