ARC (compression format)

ARC is a compressed archive format, mostly used in MS/PC-DOS, though a CP/M version also existed. It supports a number of different compression schemes, the most common of which are based on LZW.

Discussion
ARC was for a time (1985-89) the leading file archiving and file compression format in the BBS world, replacing the formats used by earlier utilities which generally only did one of the two functions (either combining multiple files in one file for convenient download, or shortening the file length to take less download time and disk space). Combining the two functions in one utility simplified the process of preparing files for download and extracting them at the other end, leading to a rapid rise in popularity for the utility (also called ARC) and format both.

However, the ARC format suffered an equally rapid decline in its popularity after the company that published the ARC utility (called System Enhancement Associates or SEA, run by Thom Henderson who was very active in FidoNet) brought a successful trademark and copyright suit against rival Phil Katz, whose PKARC and PKXARC utilities were compatible with the ARC file format. The lawsuit was widely regarded by the BBS community as being a "David vs. Goliath" case of a faceless corporation bullying a "little guy", though in fact both companies were small, home-based operations. Nevertheless, the fallout from the suit led to rapid adoption of the competing ZIP format, introduced by Katz in 1989, and ARC files are no longer commonly encountered.

The fact that archives from an early period of BBSing are often in this format encourages bad puns referring to those who trawl such old archives as "Raiders of the lost ARC."

Disambiguation
There are, unfortunately, also several other incompatible file formats that have been used over the years with an "ARC" designation or file extension, so it's possible that a data set that is purportedly of type "ARC" is not actually of this format. Others include the FreeArc format and the Internet Archive ARC format, as well as a Commodore ARC that's similar in concept but not compatible to any of the other ARCs.

Format details
An ARC file consists of a sequence of zero or more archive members, followed by an end-of-archive marker: the bytes. It is common for ARC files to have padding or other data after the end-of-archive marker.

Each member begins with a  byte, then a byte indicating the compression method used for that member file. (For files beginning with, see ArcMac.)

Compression methods
The compression method byte identifies a member's compression method, and/or other information about the type of member. The usual compression methods are in the range 1 through 9.

Unfortunately, there are several different compression methods named "crunched" or "Crunched".

ARC Plus
The ARC v7 software is named "ARC Plus" or "ARC+Plus". By default, it uses Trimmed compression, and the files it creates begin with an archive info item ("compression method" 20). Some format identification tools identify files beginning this way as "ARC+" format.

ARC v6.02 understands archive info items, though it's unclear if it ever creates them. It does not support Trimmed decompression.

PK-style comments
The PKARC/PKPAK software supports comments, using a custom format extension that appears after the end-of-archive marker. Refer to PKARC/PKPAK.

PAK extended records
This is another kind of data that can appear after the end-of-archive marker. Refer to PAK (ARC extension).

Identifiers

 * File extension: .ARC (or conventionally .ARK on CP/M)
 * MIME type (Internet media type): Has no specific registered type; generic binary application/octet-stream is generally used, or perhaps unregistered custom types with an x- prefix
 * Uniform Type Identifier (Apple): public.archive.arc

Specifications

 * The ARC Archive File Format, from Corion.net and FileFormat.Info.
 * ARC file header format (among other archive types)
 * Archive format info, including ARC
 * : ARC 6.02 Extended Data
 * : ARC 6.02 Extended Data

Sample files

 * CHRISTIE.ARC
 * POLIPREF.ARC
 * https://telparia.com/fileFormatSamples/archive/arc/
 * https://telparia.com/fileFormatSamples/archive/arc/
 * https://telparia.com/fileFormatSamples/archive/arc/

Programs and Utilities

 * nomarch by Russell Marks, c. 2001 (Unix/GPL2) -- extract only.
 * Packaged for Debian-based Linux distributions: apt-get install nomarch
 * ARC (for Unix) - Portable software based on ARC source code
 * ARC - DOS binaries
 * v3.10 (1985-05-01): See old-dos.ru
 * v4.11 (1985-07-02): Libris Britannia 4 → science library(b)/COMMUNIC/0132.ZIP → ARC.EXE
 * v4.20 (1985-07-16): → ARC.EXE
 * v4.30 (1985-08-22): → ARC.EXE
 * v4.50 (1985-11-18): → SIDEWRIT.ARC → ARC.EXE
 * v4.52 (1985-12-04): See old-dos.ru
 * v5.00 (1986-01-21): → ARC.EXE
 * (1986-01-31) (bare executable)
 * (1986-02-05) (For self-extraction to work, must be renamed to "ARC51.COM".)
 * (1986-10-24)
 * v5.21 (1987-04-22): HAMCALL CD ROM April 1991 → HAMCALL CD-ROM (Buckmaster)(April 1991).{BIN,CUE} → ziparc/arc/arc.exe
 * v6.00 (Dated "January of 1989", but timestamps suggest 1989-02-10): Discos PCManía → PCMania CD15.nrg → sharewre/zip/arc600.exe
 * (Dated "January of 1989", but timestamps suggest 1989-02-23)
 * (Dated "January of 1989", but timestamps suggest 1989-03-14)
 * - Same ARC.EXE as above, but has updated documentation (1989-04-21) and other differences.
 * ARC+Plus v7.10 (1990-10-04): → 370.img → ARC71.ZIP
 * (~1991-01-24)
 * Various versions, at old-dos.ru
 * XARC - A minimal ARC extractor from SEA (DOS binaries)
 * (1985-10-10)
 * (1986-01-23)
 * (1990-10)
 * (1990-10?)
 * ARCE (or ARC-E), by Wayne Chin and Vernon D. Buerg - An optimized ARC extractor for DOS
 * (1992-04-12)
 * Included with some versions of ARC.
 * PKARC/PKPAK (DOS binaries) - See PKARC/PKPAK.
 * PAK - See PAK (ARC extension).
 * PAK - See PAK (ARC extension).