Overview
Introduction
Large CSV exports, transaction logs, data dumps, generated test files, can get unwieldy to store or send as plain text. This tool compresses CSV text into a real gzip file entirely inside your browser.
It's not a cosmetic "shrink the text" trick, it's the same DEFLATE-based algorithm the standard gzip utility uses, wrapped with an honest before/after size comparison.
What Is CSV Compressor?
A CSV-to-gzip compressor built on the Web Platform's native CompressionStream("gzip") API, which produces byte-for-byte standard gzip output.
Because the compressed result is binary, the tool also base64-encodes it for display and copying in a text panel, while the actual downloadable file is the real, unmodified gzip bytes.
How CSV Compressor Works
The CSV text is UTF-8 encoded to bytes, then piped through CompressionStream("gzip") via a ReadableStream/Response pipeline, producing a genuine gzip byte stream with header, DEFLATE payload, and CRC32 trailer.
Those bytes are offered for download as a .csv.gz file (application/gzip), and separately base64-encoded (in fixed-size chunks, to avoid call-stack limits on large files) for the copyable text panel.
When To Use CSV Compressor
Use this when you want to shrink a large CSV before storing or transmitting it, and need a real, standards-compliant .gz file rather than a text gimmick.
It's also useful for demonstrating how much a given CSV's structure (repeated values, sequential IDs) actually compresses.
Often used alongside CSV Size Optimizer, Large CSV Generator and CSV Encryptor.
Features
Advantages
- Produces genuine gzip output, verifiable by decompressing it with any standard gzip-aware tool.
- Runs entirely client-side using a native browser API, your CSV data never leaves your machine.
- Shows honest original-vs-compressed byte counts, including the (rare) cases where compression doesn't help.
Limitations
- The copyable text panel holds a base64 encoding of the compressed bytes, not the raw gzip file itself, use the dedicated download button for the real .csv.gz.
- Very short or already-random-looking CSVs may not shrink, and can grow slightly due to gzip's fixed per-file overhead.
Examples
Best Practices & Notes
Best Practices
- Check the reported compressed-vs-original size before assuming compression helped, for small CSVs it sometimes doesn't.
- Use the download button, not the base64 text panel, whenever you need the actual .gz file to send or store.
- Reach for this on genuinely large CSVs, thousands of rows or more, where gzip's savings are most meaningful.
Developer Notes
Uses `new CompressionStream("gzip")` piped through a `ReadableStream`/`Response`, identical to the pattern used elsewhere in this codebase (the `list` category's List Compressor), producing real RFC 1952 gzip bytes; base64 encoding is done in 0x8000-byte chunks via `String.fromCharCode(...)` to avoid exceeding the JS engine's call-stack argument limit on large files.
CSV Compressor Use Cases
- Shrinking a large CSV export before archiving or transmitting it
- Producing a .csv.gz test fixture for a service or script that needs to handle gzip-compressed CSV input
- Demonstrating real gzip compression ratios for CSV data with different amounts of repetition
Common Mistakes
- Copying the base64 text panel and expecting it to be directly openable as a .gz file, decode it back to bytes first, or just use the download button.
- Assuming every CSV shrinks meaningfully, compression ratio depends entirely on how repetitive the data is.
Tips
- If you need maximum compression, sort or group similar rows together first, it can improve DEFLATE's ability to find repeated patterns.
- Pair with CSV Size Optimizer first (to strip unneeded quotes and blank lines) before compressing, for an even smaller final file.