Consider the resources required for decompression
Consider the resources required for decompression
Posted Jan 18, 2026 16:55 UTC (Sun) by jreiser (subscriber, #11027)Parent article: Format-specific compression with OpenZL
Analogously for lossless data compression, then the most important design constraint is the resources required for decompression. If the receiving environment does not have enough RAM for working storage, or enough ROM to store the decompression program, then the compression ratio does not matter. Perhaps a datacenter has vastly more than enough RAM and ROM, but many other environments do not. A child's toy, household appliance, home internet router, electric bicycle, industrial automoton, etc, often operate in resource-poor environments. Think of a 16-bit microcontroller with a total of 128kB of RAM and 256kB of ROM. Even a low-end cellphone with 3MB of RAM and 1MB of ROM can be a tight fit.
Because the output of OpenZL must name (or include) the schema, then there is an opportunity to approach this situation
by labeling each compressed output. "This data was compressed by version 1.2.3 of implementation FOO of Standard BAR. The reference decompressor requires 10MB of working storage and 38kB of code." For any compression system, it would be a great improvement if the constraints of decompression could be expressed as explicit parameters to the compressor. "For decompression, then my embedded device allows 20kB of RAM and 10kB of ROM. Please meet these constraints, or tell me how close you can come."
