XZ Extractor

Extract .XZ Files Online
(No Size Limits)

Drag & drop your XZ file here

or click to browse your local files

100% Private - Files never leave your browser

Open, view, and unpack source archives securely in your browser tab. 100% safe from data leaks, lightning-fast processing, and optimized for large developer packages.

About Decompression of XZ

An .xz file holds one file compressed with LZMA2, and nothing else. There are no folders and no second entry, so linux-6.9.tar.xz decompresses to one linux-6.9.tar, which is itself an archive. If you expected a folder of files, what you have is a .tar.xz, and both layers need to come off.

Why XZ compresses harder than everything else

LZMA2 uses a very large dictionary and searches it exhaustively, which finds matches that gzip's much smaller window cannot. The result is usually meaningfully smaller than gzip or Zstandard can manage, paid for in compression time and memory. Decompression is slower too, though far less dramatically.

That trade is worth making exactly once: when a file is built one time and downloaded by millions, and every megabyte is bandwidth someone pays for. It is why kernel.org still publishes kernel sources as .tar.xz.

Why this one was hard to build

XZ routed through the bundled build of libarchive.js, whose only entry point copies the entire archive into the WebAssembly heap before doing anything. That imposed a 300 MB ceiling on a page that advertises no size limits, and XZ files are frequently larger than that once decompressed.

The callback API that would allow streaming was compiled into that build but never exported, and every prebuilt libarchive binding published to npm takes the archive as a single Uint8Array. None of them can stream, so none could fix it.

libarchive is therefore built from source here with both halves exposed. Input arrives through archive_read_set_read_callback and its seek and skip counterparts, answered from a sliding window over the file, so the archive is never resident in memory. Output returns through archive_read_data_block one chunk at a time and is written straight to disk. Memory stays flat in both directions regardless of file size.

Doing it from a terminal instead

To decompress while keeping the compressed original:

xz -d -k archive.xz

On macOS the tool is not installed by default and needs brew install xz first. That install step is the reason this page exists: on a managed laptop or a school Chromebook you often cannot run it.

What does not work

Multi-volume archives split across several files are not supported. XZ has no encryption layer of its own, so a password-protected .xz is really an encrypted container holding one, and that outer layer has to come off first.

XZ FAQ

Everything you need to know about how unpk.app processes XZ locally.

Is it safe to extract XZ files online with unpk.app?

Yes, extracting XZ files on unpk.app is completely secure. The entire decompression process runs locally in your browser memory via WebAssembly. Your XZ archive is never uploaded to a server, keeping your confidential contents entirely private.

Can I unpack large XZ archives like 5GB or 10GB files?

Yes! There are no artificial file size caps or upload limits for XZ archives. Since unpk.app extracts XZ files entirely within your browser using WebAssembly, you are only limited by your device's physical memory (RAM).

Do I need an app like WinRAR or 7-Zip to extract XZ files?

No software installation or browser extensions are needed to open XZ files. unpk.app decompresses XZ archives directly in your browser tab, making it ideal for restricted school Chromebooks or locked-down corporate environments.

Can unpk.app extract password-protected or encrypted XZ files?

Yes! unpk.app supports unlocking password-protected XZ archives locally. Since the password prompt and decryption run completely client-side in your browser, your passwords are never sent over the network or stored on any server.

Can I decompress XZ files on mobile browsers like iOS Safari?

Yes! You can extract and view the contents of XZ files directly on iOS Safari or Android Chrome. unpk.app runs smoothly on mobile devices, allowing you to open XZ archives on the go without installing extra apps.

Is there a limit on how many XZ files I can extract for free?

No. unpk.app offers unlimited, free XZ file extractions. Because the processing runs locally on your computer rather than our servers, we don't charge any fees or enforce any bandwidth or volume limits.

What other formats can I extract here besides XZ?

In addition to XZ, unpk.app supports 9 other formats: ZIP, RAR, 7Z, TAR, GZ, TAR.GZ, XZ, TAR.XZ, BZ2, and ISO. All formats are unpacked entirely locally inside your browser via WebAssembly.