Read a page instead of the entire file
Files stay on your device. The worker builds an index or reads container metadata, then decodes only the requested page. NDJSON scans one MB at a time and stores sparse record offsets. Binary view reads a small file slice. Parquet selects row groups and columns; Avro selects container blocks. The page never receives the entire raw file as a text string.
NDJSON and Parquet
NDJSON accepts UTF-8 with LF or CRLF separators and an optional BOM. Blank lines are skipped. Records are validated when displayed; invalid lines appear as error objects with their record number. Individual records are limited to 2 MB. Parquet supports the library’s common encodings and codecs, including Snappy, Gzip and Zstandard; LZO is unsupported. Choose up to 20 columns. A decoded column chunk or individual range read must fit within 32 MB, so files with very large row groups may need rewriting.
Avro containers and Protobuf
Avro object containers include their schema. Null, Deflate and Snappy compression are supported, with sync markers and Snappy CRC checks. Compressed blocks are limited to 32 MB and decoded blocks to 16 MB. Avro long values remain exact; bytes and fixed values use hexadecimal strings, and logical types retain their encoded values. Supported schema types include records, named types, unions, enums, arrays, maps and primitives. Schemas are limited to 128 KB and record nesting is bounded.
Protobuf needs a self-contained .proto schema and message type. External schema imports are not fetched. Choose raw framing for one message up to 16 MB, or length-delimited framing for a stream of messages. int64 values are exported as decimal strings, bytes as Base64 and enums as names. Unknown wire fields follow protobufjs decoding behavior and are not preserved as separate fields.
Limits and exports
Files are limited to 1 GB. Indexing has a two-minute time limit and each page a twenty-second limit; both can be stopped. Pages contain 1–50 records and at most 2 million output characters. Export and Open in… include only the current page. Use fewer rows if records are large. Binary view shows hexadecimal byte offsets and 16 bytes per row. A format limit is not a guarantee that every compressed file of that size can decode within the available memory.
Send a JSON page to SQLite Database Lab for queries, or to TypeScript and Zod generators. Save the tool library through Offline Access before disconnecting.
For a small newline-delimited JSON export that fits in memory, JSONL to JSON converts records into one JSON array. Keep using this file viewer for bounded inspection of larger files, or use DuckDB Playground for filtered SQL analysis within its import limits.