PySuricata

Profile a big CSV in a browser tab.

Drop a file below and PySuricata generates a full exploratory-data-analysis report — per-column distributions, missing-value analysis, quality alerts. There is no server. The profiler itself is compiled to WebAssembly and runs inside this page, so your data never leaves your machine.

No upload — check your network tab Streaming — read in chunks, never held whole MITpip install pysuricata

Drop a CSV or Parquet file

Nothing is uploaded. Files stay in this tab and disappear when you close it.

How this works

Pyodide compiles CPython, pandas and numpy to WebAssembly. Your file is mounted straight from disk into the sandbox filesystem, so pandas reads it lazily and hands PySuricata a chunk generator.

Why it stays small

Statistics come from streaming sketches — Welford/Pébay for moments, KMV for distinct counts, Misra–Gries for top values, reservoir sampling for quantiles. Memory tracks column count, not row count.

Where it is approximate

Moments, extrema and missing counts are exact. Quantiles, high-cardinality distinct counts and duplicate rows are estimated; the report marks those with an approx chip.

Limits of the demo

A browser tab has a hard memory ceiling and one core. Very wide frames are refused here — memory scales with columns. For those, run it locally.