Best JSONL / NDJSON Compression Tool
Up to 99% smaller than LZMA. 121 wins, 0 losses across real-world JSONL / NDJSON files. Lossless, verified, free to try.
How PZIP Compresses JSONL / NDJSON
PZIP parses every line, extracts the schema, stores keys exactly once in a dictionary, then columnarizes all values by key. Each column type — timestamps, numbers, strings — gets specialized compression. The result: up to 88.8% smaller than treating JSONL as flat text.
Codec: Columnar codecHistory of JSONL / NDJSON
JSONL (JSON Lines) was formalized by Ian Ward as a convention for streaming and storing structured records — one JSON object per line. Also known as NDJSON (Newline Delimited JSON), it became the standard for data pipelines, log aggregation, and machine learning datasets.
Compression Timeline
JSON created by Douglas Crockford
JSONL convention formalized by Ian Ward
NDJSON specification published
JSONL becomes standard for ML datasets and log pipelines
PZIP achieves 88.8% savings vs LZMA with columnar JSONL codec
Real-World Benchmark Results
Every file tested with LZMA-9 (maximum compression) as baseline. Round-trip correctness verified on every file.
| File | Size | PZIP vs LZMA | Result | Download |
|---|---|---|---|---|
| csv2jsonl_Classifications.jsonl | 1.5 MB | -99% | WIN | Source |
| fivethirtyeight_bob_ross.jsonl | 466.0 KB | -98.8% | WIN | Source |
| r_count_affairs.jsonl | 180.1 KB | -98.8% | WIN | Source |
| tidytuesday_freedom.jsonl | 683.8 KB | -98.8% | WIN | Source |
| vega_birdstrikes.jsonl | 4.1 MB | -98.5% | WIN | Source |
| csv2jsonl_Geography.jsonl | 2.2 MB | -98.3% | WIN | Source |
| seaborn_titanic.jsonl | 221.8 KB | -98.2% | WIN | Source |
| worldbank_life_expectancy.jsonl | 1.5 MB | -97.9% | WIN | Source |
| tidytuesday_womens_soccer.jsonl | 71.1 KB | -97.7% | WIN | Source |
| worldbank_population.jsonl | 1.4 MB | -97.7% | WIN | Source |
| r_aer_affairs.jsonl | 108.2 KB | -97.6% | WIN | Source |
| tidytuesday_frogs.jsonl | 111.3 KB | -97.3% | WIN | Source |
| ecb_exchange_rates.jsonl | 3.3 MB | -97.1% | WIN | Source |
| fivethirtyeight_congress_age.jsonl | 4.6 MB | -97.1% | WIN | Source |
| tidytuesday_ninja_warrior.jsonl | 122.0 KB | -97.1% | WIN | Source |
| tidytuesday_plastics.jsonl | 3.0 MB | -97.1% | WIN | Source |
| nytimes_covid_states.jsonl | 4.1 MB | -97% | WIN | Source |
| r_survival_colon.jsonl | 452.2 KB | -97% | WIN | Source |
| tidytuesday_dog_breeds.jsonl | 89.9 KB | -96.9% | WIN | Source |
| vega_weather.jsonl | 409.6 KB | -96.9% | WIN | Source |
| tidytuesday_palmer_penguins.jsonl | 59.1 KB | -96.8% | WIN | Source |
| seaborn_penguins.jsonl | 53.7 KB | -96.7% | WIN | Source |
| tidytuesday_scooby.jsonl | 1.1 MB | -96.7% | WIN | Source |
| tidytuesday_eruptions.jsonl | 4.1 MB | -96.6% | WIN | Source |
| tidytuesday_squirrels.jsonl | 2.8 MB | -96.5% | WIN | Source |
| r_wooldridge_wage1.jsonl | 214.3 KB | -96.4% | WIN | Source |
| r_datasets_infert.jsonl | 39.1 KB | -96.3% | WIN | Source |
| tidytuesday_cocktails.jsonl | 780.5 KB | -96.3% | WIN | Source |
| tidytuesday_penguins_raw.jsonl | 157.1 KB | -96.3% | WIN | Source |
| vega_seattle_weather.jsonl | 171.2 KB | -96.3% | WIN | Source |
| gold_prices.jsonl | 88.8 KB | -96.2% | WIN | Source |
| ml_wine_white.jsonl | 1.3 MB | -96.2% | WIN | Source |
| vega_unemployment_industries.jsonl | 199.6 KB | -96.2% | WIN | Source |
| ml_wine_red.jsonl | 424.0 KB | -96.1% | WIN | Source |
| worldbank_gdp_percapita.jsonl | 1.5 MB | -96.1% | WIN | Source |
| seaborn_taxis.jsonl | 2.1 MB | -96% | WIN | Source |
| tidytuesday_beyonce_taylor.jsonl | 3.9 MB | -96% | WIN | Source |
| plotly_tips.jsonl | 27.5 KB | -95.9% | WIN | Source |
| r_ggplot_mpg.jsonl | 46.3 KB | -95.9% | WIN | Source |
| tidytuesday_star_trek.jsonl | 649.4 KB | -95.9% | WIN | Source |
| tidytuesday_coffee.jsonl | 1.6 MB | -95.8% | WIN | Source |
| tidytuesday_marble_races.jsonl | 78.3 KB | -95.8% | WIN | Source |
| tidytuesday_tbi.jsonl | 32.3 KB | -95.6% | WIN | Source |
| fivethirtyeight_bad_drivers.jsonl | 29.3 KB | -95.5% | WIN | Source |
| tidytuesday_astronaut.jsonl | 776.8 KB | -95.5% | WIN | Source |
| tidytuesday_volcano.jsonl | 754.1 KB | -95.5% | WIN | Source |
| global_temp.jsonl | 212.6 KB | -95.2% | WIN | Source |
| r_reshape_tips.jsonl | 31.7 KB | -95.2% | WIN | Source |
| tidytuesday_christmas_songs.jsonl | 137.4 KB | -95.2% | WIN | Source |
| fivethirtyeight_comic_marvel.jsonl | 4.9 MB | -95.1% | WIN | Source |
| population.jsonl | 1.5 MB | -95.1% | WIN | Source |
| r_mass_birthwt.jsonl | 27.0 KB | -95.1% | WIN | Source |
| tidytuesday_passwords.jsonl | 92.9 KB | -95.1% | WIN | Source |
| r_datasets_chickweight.jsonl | 43.9 KB | -95% | WIN | Source |
| vega_flights_20k.jsonl | 1.9 MB | -94.8% | WIN | Source |
| natural_gas.jsonl | 284.5 KB | -94.6% | WIN | Source |
| tidytuesday_ikea.jsonl | 1.5 MB | -94.6% | WIN | Source |
| vega_flights_10k.jsonl | 959.4 KB | -94.6% | WIN | Source |
| vega_flights_airport.jsonl | 294.6 KB | -94.5% | WIN | Source |
| vega_disasters.jsonl | 48.2 KB | -94.3% | WIN | Source |
| vega_flights_5k.jsonl | 479.7 KB | -94.3% | WIN | Source |
| tidytuesday_food_consumption.jsonl | 152.9 KB | -94.2% | WIN | Source |
| seaborn_planets.jsonl | 121.3 KB | -94.1% | WIN | Source |
| vega_movies.jsonl | 1.3 MB | -94% | WIN | Source |
| fivethirtyeight_daily_show.jsonl | 355.0 KB | -93.9% | WIN | Source |
| vega_cars.jsonl | 76.7 KB | -93.9% | WIN | Source |
| usgs_earthquakes_week.jsonl | 1.4 MB | -93.8% | WIN | Source |
| r_ggplot_txhousing.jsonl | 1.6 MB | -93.7% | WIN | Source |
| tidytuesday_cran_packages.jsonl | 4.1 MB | -93.7% | WIN | Source |
| tidytuesday_tuition.jsonl | 786.5 KB | -93.7% | WIN | Source |
| tidytuesday_media_franchises.jsonl | 73.4 KB | -93.6% | WIN | Source |
| vega_flights_2k.jsonl | 191.9 KB | -93.6% | WIN | Source |
| tidytuesday_beer_awards.jsonl | 873.1 KB | -93.5% | WIN | Source |
| tidytuesday_ramen.jsonl | 455.2 KB | -93.4% | WIN | Source |
| r_datasets_treering.jsonl | 430.3 KB | -93.3% | WIN | Source |
| vega_co2_concentration.jsonl | 47.8 KB | -93.3% | WIN | Source |
| seaborn_dots.jsonl | 83.9 KB | -93.1% | WIN | Source |
| vega_countries.jsonl | 96.5 KB | -93.1% | WIN | Source |
| r_survival_pbc.jsonl | 137.3 KB | -92.6% | WIN | Source |
| s_and_p_500.jsonl | 426.6 KB | -92.3% | WIN | Source |
| fivethirtyeight_avengers.jsonl | 83.0 KB | -91.9% | WIN | Source |
| world_cities.jsonl | 3.1 MB | -91.9% | WIN | Source |
| r_mass_crabs.jsonl | 24.6 KB | -91.8% | WIN | Source |
| country_codes.jsonl | 438.1 KB | -91.7% | WIN | Source |
| csv2jsonl_Cxx17Issues.jsonl | 95.2 KB | -91.6% | WIN | Source |
| seaborn_dowjones.jsonl | 26.3 KB | -91.5% | WIN | Source |
| vega_population.jsonl | 30.4 KB | -91.4% | WIN | Source |
| fivethirtyeight_hate_crimes.jsonl | 21.2 KB | -91.3% | WIN | Source |
| vega_gapminder.jsonl | 72.8 KB | -91.3% | WIN | Source |
| csv2jsonl_Cxx23Issues.jsonl | 94.4 KB | -91.2% | WIN | Source |
| r_mass_boston.jsonl | 118.2 KB | -91% | WIN | Source |
| csv2jsonl_Cxx20Issues.jsonl | 93.4 KB | -90.9% | WIN | Source |
| plotly_gapminder.jsonl | 279.5 KB | -90.9% | WIN | Source |
| currency_codes.jsonl | 63.4 KB | -90.6% | WIN | Source |
| r_ggplot_economics.jsonl | 74.1 KB | -90.6% | WIN | Source |
| csv2jsonl_Cxx2cIssues.jsonl | 78.9 KB | -90.5% | WIN | Source |
| csv2jsonl_Cxx2cPapers.jsonl | 50.3 KB | -90.4% | WIN | Source |
| fivethirtyeight_bechdel.jsonl | 600.3 KB | -90.4% | WIN | Source |
| r_dplyr_starwars.jsonl | 20.5 KB | -90% | WIN | Source |
| tidytuesday_moore_law.jsonl | 27.5 KB | -90% | WIN | Source |
| tidytuesday_simpsons.jsonl | 186.4 KB | -89.8% | WIN | Source |
| tidytuesday_wheels.jsonl | 41.0 KB | -89.6% | WIN | Source |
| tidytuesday_transit_cost.jsonl | 250.3 KB | -89.5% | WIN | Source |
| plotly_gapminderdata.jsonl | 216.4 KB | -89.4% | WIN | Source |
| tidytuesday_the_office.jsonl | 23.7 KB | -89.4% | WIN | Source |
| plotly_apple_finance.jsonl | 136.8 KB | -88.5% | WIN | Source |
| tidytuesday_bechdel.jsonl | 1.8 MB | -88.3% | WIN | Source |
| vega_airports.jsonl | 505.4 KB | -87.8% | WIN | Source |
| language_codes.jsonl | 50.0 KB | -87.1% | WIN | Source |
| fivethirtyeight_riddler.jsonl | 646.0 KB | -86.3% | WIN | Source |
| r_ggplot_midwest.jsonl | 304.6 KB | -86.1% | WIN | Source |
| tidytuesday_solar.jsonl | 26.3 KB | -85.5% | WIN | Source |
| tidytuesday_product_hunt.jsonl | 2.6 MB | -85.1% | WIN | Source |
| plotly_us_cities.jsonl | 112.2 KB | -84.7% | WIN | Source |
| tidytuesday_solar_wind.jsonl | 26.0 KB | -84.7% | WIN | Source |
| fivethirtyeight_nba_raptor.jsonl | 3.1 MB | -84.4% | WIN | Source |
| plotly_flights_2k.jsonl | 35.7 KB | -83.6% | WIN | Source |
| r_wooldridge_hprice1.jsonl | 22.1 KB | -82.4% | WIN | Source |
| tidytuesday_horror_movies.jsonl | 2.5 MB | -81.4% | WIN | Source |
| seaborn_brain_networks.jsonl | 434.1 KB | -75.2% | WIN | Source |
| vega_normal_2d.jsonl | 26.3 KB | -69.7% | WIN | Source |
Frequently Asked Questions
How much smaller does PZIP make JSONL files?
+
Up to 88.8% smaller than LZMA-9. Our 117-file benchmark shows 30.8% median savings across real-world JSONL datasets including sensor data, event logs, and API logs.
Does PZIP handle nested JSON objects in JSONL?
+
Currently, nested objects fall back to LZMA compression. Flat schemas with consistent keys see the biggest columnar wins.
Is PZIP good for compressing data pipeline output?
+
Excellent. JSONL is the standard for data pipelines, and PZIP's columnar approach was specifically designed for this use case. Streaming logs, metrics, events — all benefit.
PZIP vs Other Compressors for JSONL / NDJSON
| Feature | PZIP | LZMA / xz | gzip | zstd |
|---|---|---|---|---|
| Type-Aware | Yes | No | No | No |
| Lossless | Yes | Yes | Yes | Yes |
| Never-Worse Guarantee | Yes | N/A | N/A | N/A |
| Best JSONL / NDJSON Saving | 99% | Baseline | Worse | ~Similar |
| Round-Trip Verified | Every file | Manual | Manual | Manual |
Try PZIP on Your JSONL / NDJSON Files
Upload any JSONL / NDJSON file up to 30 MB. Free during beta — no signup required. See how much smaller PZIP makes it.
Baseline: LZMA-9 (maximum compression)
Competitors: gzip-9, bz2-9, brotli-11, zstd-19, PPMd 2-24
Verification: Byte-exact round-trip on every file
Guarantee: Never-worse (PZIP <= LZMA, always)
Test files: 121 real-world JSONL / NDJSON files
Updated: 2026-02-15