Convert Any File to TAR.LZO Online (Bundling Into Tar, Then Compressing for Speed)

Building a fresh TAR.LZO archive means choosing decompression speed over squeezing the file down as far as possible — a deliberate, documented trade, not a compromise.

  1. Add a file Choose or drop it here
  2. Pick the format Change it whenever needed
  3. Download the result After conversion completes

Two Separate Steps: Tar Bundles, Then Lzop Compresses for Speed

Building a TAR.LZO archive from a set of input files runs through the same two-step pattern any tar-based compressed archive uses: tar writes every file into 512-byte header-and-data blocks, recording each entry's name, owner, permissions, and size, with no compression logic of its own at all. Lzop, built around Markus Oberhumer's LZO compression library and first released on August 10, 1997, then compresses whatever continuous stream tar produced, treating it as one undifferentiated sequence of bytes with no knowledge that separate files exist inside it.

What makes choosing LZO specifically meaningful is the algorithm's own stated design goal: LZO's documentation states its priority is decompression speed above nearly everything else, including the resulting file's size. Its default lzo1x_1 method performs a simplified Lempel-Ziv-style scan for repeated byte sequences without the additional entropy-coding pass that gzip's DEFLATE or bzip2 both apply on top of their own pattern-matching stage. Skipping that stage is a deliberate trade: less time spent encoding means less time needed to decode later, at the direct cost of leaving more redundancy in the compressed output than a heavier algorithm would.


Choosing a Compression Level Actually Changes How Hard Lzop Looks

Lzop exposes several selectable methods and levels beyond its lzo1x_1 default, up to the considerably more thorough lzo1x_999 method activated by the --best flag, which spends noticeably more time searching for matches in the input data in exchange for a smaller file. Even at --best, lzop's documentation makes clear that decompression speed stays essentially unaffected by which level built the archive, since LZO's decompression side is inherently simple regardless of how much effort went into finding the matches during compression — a real, asymmetric trade that's different from gzip, where higher compression levels can meaningfully affect decompression time too in some implementations.

Every archive lzop produces begins with a fixed nine-byte signature — 0x89 0x4C 0x5A 0x4F 0x00 0x0D 0x0A 0x1A 0x0A — followed by a header recording the LZO method and level actually used, along with the original file's name, timestamp, and Unix permission bits. That header lets any lzop-aware tool identify exactly how a given TAR.LZO file was built without needing to be told separately, since the compression settings travel with the file itself.

Unlike gzip's single CRC-32 checksum covering an entire compressed stream, lzop compresses and checksums data in separate blocks, defaulting to the faster Adler-32 algorithm per block unless the stronger --crc32 option is specified when the archive is created. This block structure is also why lzop's own documentation notes that a single damaged block doesn't necessarily make the rest of the file unreadable, unlike a single continuous gzip stream where damage partway through generally breaks everything that follows it.

The tar layer underneath all of this stays exactly the same regardless of which LZO settings compress it afterward. Every file's 512-byte header, its padding to the next 512-byte boundary, and the two zero-filled blocks marking the end of the archive are written by tar first, entirely independently of lzop — building a TAR.LZO from a single small file goes through the identical tar-wrapping step a whole directory tree would, even though wrapping one file in a tar structure before compressing it might seem unnecessary at first glance.


What Building a Fresh Speed-Optimized Archive Gains and Costs

  • Gain — the fastest decompression among common tar-based formats: LZO's simplified matching, without an entropy-coding stage, decodes quicker than gzip, bzip2, or xz.
  • Gain — very low CPU and memory demand: LZO's lighter algorithm suits constrained hardware that can't spare much processing power for compression.
  • Lose — compression ratio compared with gzip, bzip2, or xz: skipping entropy coding leaves more redundancy in the output than those algorithms would.
  • Gain — Unix permission bits and ownership preserved: tar's own header format records file mode, owner, and group directly, independent of whichever compressor wraps around it.
  • Lose — mainstream desktop tool support: 7-Zip, WinRAR, and the built-in tools on Windows and macOS generally don't include native LZO decompression at all.
  • Gain — per-block checksums instead of one whole-file checksum: a single damaged block doesn't automatically prevent recovering the rest of the archive.

Where Creating a New TAR.LZO Archive Works Without Extra Setup

Creating a TAR.LZO archive requires the lzop utility itself, available as a standard package on nearly every mainstream Linux distribution, or GNU tar used together with its --lzop flag if the lzop binary is installed and accessible on the system's search path. Neither is bundled by default the way gzip is, since gzip has been part of the base Unix toolset since the early 1990s while lzop remains a separate, purpose-specific install even on Linux.

Windows and macOS have no built-in support for creating this format at all in their standard file managers, and mainstream third-party tools like 7-Zip, WinRAR, and Archive Utility generally don't include LZO compression either, since the format's actual user base is concentrated almost entirely in Linux, Unix, and embedded-systems environments that already have lzop installed for a specific purpose, rather than general desktop archiving.

Programming language ecosystems mirror the same gap that exists on the desktop: Python, Java, and most other mainstream languages bundle gzip support directly in their standard libraries with no extra package needed, while reading or writing LZO-compressed data generally requires a separate, less commonly maintained third-party binding — a real, practical difference for anyone automating archive creation in a script rather than using a dedicated command-line tool.


The Real, Documented Reasons Someone Builds This Format Specifically

A well-documented scenario involves embedded Linux firmware and router operating systems like OpenWrt, where a device's bootloader has to decompress a boot image using very limited processing power, and every additional second of decompression time directly delays the device becoming usable — building the firmware image as TAR.LZO specifically targets that constraint, rather than optimizing for the smallest possible download size.

A second real pattern involves the Linux kernel's own subsystems: zram, which creates a compressed RAM-based block device, documents LZO as a selectable backend precisely because compression and decompression happen constantly during normal system operation, and a slower algorithm there would directly slow down the machine using it. SquashFS, supporting LZO since kernel version 2.6.34, and Btrfs, which lists LZO among its three supported filesystem compression algorithms, both reflect the same underlying priority.

A third scenario involves backup jobs constrained to a fixed overnight time window, where finishing reliably within that window matters more than shaving off extra megabytes — building the backup archive with LZO specifically buys margin against that deadline that a slower, tighter-compressing algorithm would spend down instead.

A fourth pattern shows up in continuous data pipelines that repeatedly compress and decompress the same working data as part of normal operation rather than archiving it once and reading it back rarely — a database replication or streaming system moving large volumes of data through a compression step on every pass benefits far more from LZO's low per-operation overhead than it would from a heavier algorithm's better ratio, since the compression step itself runs constantly rather than just once.


LZO's Speed-First Design Measured Against the More Common Alternatives

Feature TAR.LZO TAR.GZ / TAR.BZ2
Entropy coding stage None Huffman coding (both formats)
Decompression speed Fastest of the common options Slower, but still fast (gzip) to slow (bzip2)
Compression ratio Lowest Moderate (gzip) to high (bzip2)
Default install base Requires lzop installed separately Gzip near-universal; bzip2 very common
Kernel-level usage zram, SquashFS, Btrfs Not used for these speed-critical roles

Common Questions About Creating a New LZO-Compressed Tar Archive

Why would I choose LZO instead of the far more common gzip?
Specifically for decompression speed. LZO is built to decode faster than gzip, bzip2, or xz, which matters in embedded firmware, boot images, and kernel-level uses where every second of decompression time has a real cost.

Will my archive be noticeably bigger than the same files as TAR.GZ?
Usually somewhat, since LZO skips the entropy-coding stage gzip's DEFLATE adds, though the --best compression level narrows that gap without fully closing it.

Do I need to install anything special to create this format?
Yes. The lzop utility, or GNU tar with its --lzop flag pointed at an installed lzop binary, is required, since LZO support isn't bundled by default the way gzip is on most systems.

Does choosing a higher LZO compression level slow down decompression later?
No, essentially not. Lzop's documentation notes decompression speed stays about the same regardless of which compression level built the file, unlike some other compressors where higher levels can affect both directions.

Does bundling files into TAR.LZO preserve their Unix permissions?
Yes, directly. Tar's own header format records file mode, owner, and group for every entry, independently of whichever compression algorithm is layered on top afterward.