Back to main

Archiver

Download v0.21 here.

Archiver is a multi-threaded file compression and archival utility that I've written in C++ to experiment with various modern compression algorithms, including context modelling and ctxn. ctxn is a general-purpose algorithm that mixes low-order context modelling with reduced-offset Lempel-Ziv, using many ideas introduced in balz. The context modelling algorithms, CM2 and CM4 are used for higher-order modelling. CM2 is a high-order context modeller (up to order-12 + secondary symbol estimation) that combines multiple predictions into bit probabilities. CM4's description and source are here. Filters are also supported, which recognize common file structures, such as MZ/PE executables, and transform them into a form that is more easily compressible. The C2 cryptography algorithm is a block-based cipher that supports relatively large key schedules with a Feistel network and uses the usual modes of operations for a block cipher (CBC, CFC, OFB, etc).

Current limitations

  • Maximum archive size of 4 GB
  • No Unicode filenames

Screenshots