Developer utility
Use this tool to clean a comma-separated CSV without sending the file to an application server. It keeps the first row as the header, then removes every later row with at least one empty or whitespace-only cell. You can process the same file with the JavaScript streaming version or the Go WebAssembly version, compare their timing in your browser, and download the cleaned CSV.
What it does
Choose or drag a `.csv` file into the uploader. The file remains available to the page as a local browser File object.
For Go WebAssembly, set the goroutine worker count after the module loads; for JavaScript, use the serial streaming panel.
Start either implementation and follow its progress log, elapsed time, and retained-row count.
Run both implementations if the comparison is useful. The timing only describes this browser, device, file, and worker setting; it is not a universal benchmark.
Use Download Result in the completed panel to save the generated CSV to your device.
Both cleaners keep the first row and retain only later rows in which every cell contains non-whitespace text. The JavaScript version reads the File stream incrementally, decodes UTF-8 chunks, and uses a quote-aware comma split. The Go module reads five-megabyte slices, sends newline-aligned jobs to goroutine workers, parses them with Go’s `encoding/csv`, restores their original order, and assembles the output. These paths use different parsers and scheduling models, so the timing is an experiment, not proof that one language is always faster.
No. A data row is removed when any of its cells is empty or contains only whitespace. The first record is treated as the header and preserved separately.
The file is read through browser File APIs and processed on the page. The tool downloads its own WebAssembly module for the Go option but does not send the selected CSV contents to an application server.
No. The current implementations assume commas and provide no delimiter selector or automatic delimiter detection.
The two versions use different parsers and scheduling strategies. Browser load, file shape, worker count, malformed records, and multiline quoted fields can change the timing or the output at the edges.