✳ OMNIVIEWER
21 GB tested

Your data, ready to explore.

safe · secure · no server · works offline · fast

A fast, private workspace for opening the CSV files spreadsheets cannot — every byte parsed in parallel by a streaming WebAssembly parser, directly in your browser. Sort, filter and search the whole file, query it with SQL, export or split it. Nothing is uploaded.

Or try it now — cities.csv

↓ scroll for about & FAQ

Preview

Drop a CSV file, or use the file picker.

Open, sort, query and split a huge CSV — without uploading it

OmniViewer opens a CSV right in your browser, at any size. Drop the file and a streaming WebAssembly RFC 4180 parser reads every byte across a pool of Web Workers, so within a moment you have the exact row count and the whole file as an aligned, typed table — not a truncated preview. From there you can sort and filter across every row, find and step through matches, resize columns, run SQL against it, convert it to JSON, read per‑column statistics, stream an export to JSON/YAML/SQL, or split it into many smaller files. There is no upload and no server: the page reads only the bytes it needs, and it has been tested in‑browser with a 21 GB, 100‑million‑row file.

What you can do with a CSV

A note on the CSV format

CSV — comma‑separated values — is the lowest common denominator for tabular data: one record per line, fields separated by a delimiter, with quoting for fields that contain the delimiter, quotes or newlines. It is loosely described by RFC 4180, though real‑world files vary in delimiter (comma, tab, semicolon), quoting and encoding — which is exactly why the parser here tracks quote state byte‑exactly across chunk boundaries, and why looking at the raw bytes is still useful.

hugecsv.com now lives here

The dedicated big‑CSV workbench the same authors ran at hugecsv.com — the WebAssembly streaming parser, the full‑file sortable and filterable table, column resizing, the streaming exporter and the splitter — is this page. It moved here so one tool opens every file format, with the deep CSV tooling intact rather than on a separate site.

FAQ

Is my CSV uploaded anywhere?

No. OmniViewer is a static page with no server-side processing: your CSV is read directly by your browser and never leaves your computer. That is true of every tab, including the SQL engine and the exporter — the parsing all happens in Web Workers on your own machine.

What is a CSV file?

CSV (comma-separated values) is a plain-text format for tabular data: one record per line, with fields separated by a delimiter — usually a comma, sometimes a tab or semicolon — and quoting for fields that contain the delimiter, a quote or a newline. It is loosely standardised by RFC 4180.

How large a CSV can I open?

Effectively unlimited. The table has been tested in-browser with a 21 GB file of 100 million rows: a WebAssembly RFC 4180 parser streams every byte across a pool of Web Workers to get the exact row count and a sparse row-to-byte index, and the table then paints by reading only the bytes for the rows on screen. Sorting, filtering and finding stream the file too, so they cover every row rather than a loaded prefix.

Can I sort and filter the whole file, not just the first rows?

Yes. Click a column header to sort by it, or type in the filter box to keep only matching rows (substring or regular expression, one column or all of them). Both run a streaming scan over the file in a Web Worker and build an explicit list of surviving rows, so they see every record. Filtering is capped at 5 million matching rows and sorting at 2 million rows — past that the sort is refused rather than silently truncated, and filtering first is the way through.

Can I query my CSV with SQL?

Yes. The SQLITE tab streams the file into a real in-browser SQLite database and lets you write SELECT … FROM data with WHERE, GROUP BY, ORDER BY, joins and aggregates. It is offered for files up to about 1 GB, because the database is held in WebAssembly memory. Above that, export a streamed .sql dump instead and load it with sqlite3 out.db < dump.sql.

Can I split a big CSV into smaller files?

Yes. Open export ▾ on the table and choose how many files you want. The CSV is copied through byte for byte in 1 MB blocks — original quoting and line endings preserved — switching to the next output file only on a real record boundary, so a quoted field containing a newline is never cut, and every part carries the header row. With the File System Access API it writes straight into a folder you pick, so the size is bounded by your disk, not by memory.

How do I know what delimiter or encoding my CSV uses?

The delimiter is sniffed from the first line and shown in the info bar, and you can override it from the toolbar (comma, semicolon or tab). The hex view shows the exact bytes, so you can see whether lines end in CRLF or LF and whether there is a byte-order mark. OmniViewer detects text vs binary from the content, not the extension.

How does this relate to hugecsv.com?

It is the same tool. hugecsv.com was the standalone big-CSV workbench by the same authors; its engine — the WebAssembly streaming parser, the full-file sortable and filterable table, column resizing, the streaming exporter and the splitter — now runs here at omniviewer.org/csv, so one viewer opens every format without giving up the deep CSV tooling.