Skip to content

Releases: lifthrasiir/aqueous

Aqueous archiver 2026-11-01

Choose a tag to compare

@github-actions github-actions released this 01 Nov 14:42

Download and execute aqr-20261101-win-install.exe if you have no other reason.
Download aqr-20261101-win7.exe if you use Windows 8 or earlier.

Newly Supported Formats

  • ALZip archive (.alz)
  • ALZip EGG archive (.egg)
  • Apple ProRes in QuickTime/MXF (.mov, .mxf)
  • ELF executables and objects
  • JSON Lines (.jsonl) and JSON arrays written one value per line
  • LHA archive (.lzh, .lha) --- -lh4- to -lh7- only
  • Matroska/WebM (.mkv, .webm) --- intended for videos of a still picture
  • RAR archive (.rar): RAR5 and RAR 3.x/4.x (RAR 2.9 LZ and PPMd, standard filters) --- PPMd streams only in -9; volumes and SFX are not supported yet
  • Aqueous archive nested in input (.aqr) --- module and resource blocks are shared with the outer archive

Changes to Existing Formats

  • IMA ADPCM
    • WAV files are now supported
  • Vorbis
    • Ogg files are now supported
  • Text
    • Text with up to 1 in 1000 non-text bytes is now taken as text (e.g. a trailing Ctrl-Z)
  • tar (and ar, cpio, asar) as a single input
    • Members and blocks are now made in parallel

User-facing Changes

  • aqr -d and aqr -t support other archives: ZIP, 7z, tar (alone or with gzip/bzip2/xz/LZMA/zstd), RAR, ALZ and EGG, plus single compressed files (.gz, .xz, …)
    • Other archives are extracted as they are into the current directory (or -o), like tar and 7z x
    • Encrypted ZIP entries and 7z folders/headers are decrypted
  • aqr -d ARCHIVE PATH... extracts or tests only the given paths and decodes only what they need
    • PATH --rename TO changes the target path
    • The prior behavior is now available through aqr -d --each ARCHIVE ARCHIVE...
  • --auto-dir places the output by what the archive holds, as GUI extractors do
  • -P encrypts archives and encrypted archives ask for a passphrase
  • -h/--help and -V/--version were added
  • GUI support via the --ipc protocol
    • Windows: Explorer verbs and a progress window (aqr-win), an installer (aqr-win-install), a passphrase dialog and the droplet icon
    • macOS: Aqueous.app adds Finder services, opens .aqr files and shows progress in Finder, with a passphrase dialog (no notarization yet)
  • Linux x86_64/aarch64 binaries are built with each release, and a Nix flake was added (nix build)

Specification Changes

  • ModuleBytes (02) and ResourceBytes (03) opcodes, so nested archives can share blocks

Compression Optimizations

  • Incompressible streams are now tried whole at zstd level 1

Performance Optimizations

  • Opening an archive for a few paths is much faster
    • Formula blocks are lazily decoded
    • Metadata is read via streaming
    • Zstd context is now reused within each thread
  • LZMA/LZMA2 decoding during extraction is 1.8× as fast
  • 7z folders are written out as they are decoded
  • Compression uses less memory
    • Formula is held in the store rather than in memory
    • Concatenations are checked part by part
  • Faster coding of JPEG and GPU textures
  • Spill files are named after the output, and on Windows they are hidden and excluded from indexing

Bug Fixes

  • Windows: extraction can no longer write outside the target directory, whether through lone surrogates, fork names or link targets
  • Names are now compared as the target file system would (case, Unicode normalization, FAT short names; on macOS, Windows and Linux)
    • Entries the file system would take as one are reported and skipped, instead of failing or overwriting each other with -f
    • Links can no longer reach outside the target directory through names differing only in case or normalization
    • A mode or times are no longer applied through a link made later over the same path
  • Fix a panic ("output taken before it is") on archives with nested shared applications, e.g. an EGG archive holding a PDF at -9
  • aqr-bz2: a memory bound could be exceeded on some blocks

Aqueous archiver 2026-10-31

Choose a tag to compare

@lifthrasiir lifthrasiir released this 31 Oct 06:56

Download and execute aqr-20261031a-win-install.exe if you have no other reason. (It is based on 5393aa3, unlike others.)
Download aqr-20261031-win7.exe if you use Windows 8 or earlier.

Newly Supported Formats

  • 7-Zip archive (.7z) and almost all built-in non-codec filters --- intended only for deduplication
  • Apple LZFSE/LZVN (Assets.car) --- only in -9
  • BZip2 (.bz2)
  • Clip Studio Paint (.clip)
  • Comma, Tab, Semicolon, Pipe and Unicode-separated values (.csv, .tsv, .usv)
  • DICOM (.dcm)
  • Electron ASAR (.asar)
  • FITS (.fits)
  • FMOD FSB5 sound bank (.fsb)
  • GIF (.gif)
  • GNU gettext message (.mo)
  • HDF5 (.hdf5)
  • IMA ADPCM --- no file support yet
  • ISO 9660/UDF image file (.iso)
  • LZMA2 and XZ (.xz)
  • LZX --- CAB/CHM support only in -9
  • MS Cabinet (.cab)
  • MS Compiled HTML Help (.chm) --- only in -9
  • PPMd var. J (.pmd) --- no decompression, deduplication only
  • Uncompressed TIFF (.tif)
  • Vorbis --- no Ogg support yet
  • WaveFront OBJ (.obj)
  • WebAssembly module (.wasm)
  • Windows Imaging Format (.wim)

Changes to Existing Formats

  • Overall

    • Optimized for module sizes and especially memory footprints
    • Estimated memory usage calculation for all modules
    • Progress meter support
  • DEFLATE

    • Dedicated code for zlib -1..3 reproduction
  • git repository

    • Share the DEFLATE backend with other files
    • Automatic derivation of .idx and .rev files
  • LZMA

    • Compression is now partly multi-threaded
  • Mach-O

    • Explicit packing of symbol tables
    • Dedicated delta coding format support ("remap", both x86-64 and AArch64)
  • PE (.exe)

    • Explicit packing of tabular sections
  • x86-64

    • Greatly reduced the number of input streams
  • Photoshop (.psd)

    • Fix a shift overflow in WebAssembly module
  • Text

    • WRT is now multi-threaded
    • Specific transformation for Korean hangul
    • Very long lines no longer force single-threaded encoding
  • ZIP (.zip)

    • Non-transformed slices are now deduplicable

User-facing Changes

  • Progress bars and slow files are displayed during compression and decompression
  • Per-file logs are off by default (-v)
  • Preset dictionaries can be trained within batches (-D)
  • Proper metadata recording and restoration, privileged attributes are also handled via -p
  • Batch and block sizes are customizable (-B and -b)
  • In-process statistics and profiling (--stats, --stats=report.html etc.)

Specification Changes

  • Additional keys for forks (or streams), xattrs and platform-specific metadata
  • Mandatory declaration of max concurrency (aqr_task_slots custom section)

Compression Optimizations

  • Infer tabular layouts and transpose accordingly
  • Improve the clustering of batches via content-defined chunking
  • Streams are now sliced and compared against each other for similarity

Performance Optimizations

  • Compression uses much less memory now
  • Compression is now partially streamed
  • apply_memory_limit is now correctly declared for all modules
  • Inputs are memory mapped, any detected changes are correctly handled
  • Big buffers are now put in spill files
  • Large streams are divided in 128 MiB blocks
  • Consecutive batches can be pipelined
  • Increase the number of ZStandard compression threads
  • Process oversized batches and costly files first
  • Task memories are now copy-on-write in Windows
  • Format-based weighting for compression

Bug Fixes

  • Fix a quadratic growth of Swap opcodes with many shared output streams
  • Eliminate unused block references in formula blocks
  • Treat .log as a text file
  • Standalone archive is analyzed according to the input file name
  • -T 1 no longer causes occasional hang
  • Graceful degradation of sandbox in Windows 8 or earlier