Eremey Valetov 6a71c8ec95 Give UC2 a voice: personality messages and -q quiet flag
UC2 now talks during operations, continuing the original's tradition:

  $ uc2 -w archive.uc2 files...
  UC2 compression level: Tight
  Created archive.uc2 (3 files, 0 dirs, 1 master, 4096 bytes)
  Everything went OK

  $ uc2 -t archive.uc2
  Testing archive integrity...
  Everything went OK

  $ uc2 -h
  UC2 3.0.0 (UltraCompressor II)
  "Fast, reliable and superior compression."

Messages are warm, confident, and slightly quirky — not a fun flag,
just how UC2 talks.  Suppressed by -q for scripting:

  $ uc2 -qt archive.uc2  # silent, exit code only

Compression level names: Fast (2), Normal (3), Tight (4), Ultra (5).
"Everything went OK" directly from the original (MAIN.CPP:918).

Completes Phase 2 (Original Compression Engine).
2026-03-29 18:23:50 -04:00

UC2 v3.0.0 — UltraCompressor II

A cross-platform revival of UltraCompressor II, the DOS-era archiver by Nico de Vries (1992--1996). UC2 was notable for its advanced deduplication ("master blocks"), file versioning, and competitive compression ratios on the hardware of its day.

This project brings UC2 back as a modern, portable C99 tool. Phase 1 (current) provides decompression and archive listing, built on Jan Bobrowski's clean-room portable decompressor (unuc2/libunuc2). Phase 2 will add compression using the original algorithms.

Building

Requires CMake >= 3.16 and a C99 compiler (GCC, Clang, or MSVC).

cmake -B build
cmake --build build

The binary is at build/cli/uc2.

Usage

uc2 archive.uc2                       # Extract all files
uc2 -l archive.uc2                    # List contents
uc2 -t archive.uc2                    # Test archive integrity
uc2 -d /tmp/out archive.uc2           # Extract to directory
uc2 -l archive.uc2 '*.txt'            # List matching files
uc2 -p archive.uc2 readme.txt         # Extract to stdout

Options

Flag Description
-l List archive contents
-t Test archive integrity
-a Include all file versions (not just latest)
-d path Extract to specified directory
-f Overwrite existing files
-p Extract to stdout
-D Skip directory metadata; -DD also skips file metadata
-T Tab-separated output (for scripting)

Project Structure

UC2/
  lib/            libuc2 decompression library
  cli/            uc2 command-line tool
  original/       preserved original sources (reference only)
  cmake/          build system modules
  tests/          test archives and test programs

History

  • v1.0--v2.3 (1992--1996) Original DOS releases by Nico de Vries
  • 2015 Source code released under LGPL-3.0 by Danny Bezemer
  • 2020--2021 Jan Bobrowski writes unuc2/libunuc2 (portable decompressor)
  • 2026 UC2 v3.0.0: cross-platform revival

License

GPL-3.0. See LICENSE and CREDITS.md for full attribution.

Description
Cross-platform revival of UltraCompressor II (Nico de Vries, 1992-1996). C99, GPL-3.0.
Readme GPL-3.0 2.1 MiB
Languages
C++ 49.1%
C 41.8%
Batchfile 3.6%
CMake 2.3%
Python 1.6%
Other 1.6%