ARC (compression format)

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(5 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
|extensions={{ext|arc}}, {{ext|ark}}
 
|extensions={{ext|arc}}, {{ext|ark}}
 
|uniform type={{UTI|public.archive.arc}}
 
|uniform type={{UTI|public.archive.arc}}
|locfdd={{LoCFDD|fdd000235}}
 
 
|wikidata={{wikidata|Q296496}}
 
|wikidata={{wikidata|Q296496}}
 
|released=1985
 
|released=1985
 
}}
 
}}
'''ARC''' was for a time (1985-89) the leading file archiving and file compression format in the [http://en.wikipedia.org/wiki/Bulletin_board_system 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.
+
'''ARC''' is a compressed archive format. It supports a number of different compression schemes, the most common of which are based on [[LZW]].
  
However, the ARC format suffered an equally rapid decline in its popularity after the company that published the [http://cd.textfiles.com/rbbsv3n1/atnu/arc51.exe 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.
+
== Discussion ==
 +
ARC was for a time (1985-89) the leading file archiving and file compression format in the [http://en.wikipedia.org/wiki/Bulletin_board_system 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 {{CdTextfiles|rbbsv3n1/atnu/arc51.exe|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."
 
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 [[ARC|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 [[ARC (FreeArc)|FreeArc]] format and the [[ARC (Internet Archive)|Internet Archive ARC format]], as well as a [[ARC (Commodore)|Commodore ARC]] that's similar in concept but not compatible to any of the other ARCs.
 
There are, unfortunately, also [[ARC|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 [[ARC (FreeArc)|FreeArc]] format and the [[ARC (Internet Archive)|Internet Archive ARC format]], as well as a [[ARC (Commodore)|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 <code>0x1a 0x00</code>. It is common for ARC files to have padding or other irrelevant data after the end-of-archive marker.
 +
 +
Each member begins with a 0x1a byte, then a byte indicating the compression method used for that member file. The usual compression methods are in the range 0x01 through 0x09.
 +
 +
=== PK-style comments ===
 +
The PKARC/PKPAK software supports comments, apparently using a custom ARC format extension that appears after the end-of-archive marker.
 +
 +
''Information based on reverse engineering:'' An ARC file with comments ends with an 8-byte trailer that begins with the signature {{magic|'P' 'K' 0xaa 0x55}}. This is preceded by a sequence of 32-byte ''records'', each containing a comment, except for one that has a special purpose. The last 4 bytes of the file contain the offset of the special record. The special record somehow indicates whether an archive comment and/or file comments are present. An archive comment, if present, is in the record preceding the special record. File comment records come after the special record, in the same order as the members appear in the ARC file.
  
 
== Identifiers ==
 
== Identifiers ==
Line 19: Line 32:
 
* 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
 
* 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'''
 
* Uniform Type Identifier (Apple): '''public.archive.arc'''
 +
 +
== See also ==
 +
* [[Spark]]
 +
* [[RLE90]]
 +
 +
== Specifications ==
 +
* [http://www.fileformat.info/format/arc/index.dir Page at FileFormat.info]
 +
* [http://www.textfiles.com/programming/FORMATS/arc_fmts.txt ARC file header format (among other archive types)]
 +
* [http://apple2.org.za/gswv/a2zine/GS.WorldView/Resources/The.MacShrinkIt.Project/ARCHIVES.TXT Archive format info, including ARC]
 +
* {{CdTextfiles|simtel/simtel20/MSDOS/ARCHIVRS/ARC_FILE.INF|ARC-FILE.INF}}
  
 
== Sample files ==
 
== Sample files ==
 +
* {{CdTextfilesURL|powerprogramming/PROGTOOL/}} ...
 
* [http://www.dan.info/sampledata/CHRISTIE.ARC CHRISTIE.ARC]
 
* [http://www.dan.info/sampledata/CHRISTIE.ARC CHRISTIE.ARC]
 
* [http://www.dan.info/sampledata/POLIPREF.ARC POLIPREF.ARC]
 
* [http://www.dan.info/sampledata/POLIPREF.ARC POLIPREF.ARC]
* http://cd.textfiles.com/pcblue/
+
* {{CdTextfilesURL|pcblue/}}
  
 
== Programs and Utilities ==
 
== Programs and Utilities ==
Line 29: Line 53:
 
** Packaged for Debian-based Linux distributions: <tt>apt-get install nomarch</tt>
 
** Packaged for Debian-based Linux distributions: <tt>apt-get install nomarch</tt>
 
* [https://sourceforge.net/projects/arc/ ARC]
 
* [https://sourceforge.net/projects/arc/ ARC]
* An [http://cd.textfiles.com/rbbsv3n1/atnu/arc51.exe ARC utility] at CD.Textfiles.com
+
* An {{CdTextfiles|rbbsv3n1/atnu/arc51.exe|ARC utility}} at CD.Textfiles.com
 +
* {{CdTextfiles|microhaus/mhblackbox3/ARCHIVER/PK36.EXE|PKARC 3.6}}
 +
* {{CdTextfiles|microhaus/mhblackbox3/ARCHIVER/PK361.EXE|PKPAK 3.61}}
 +
* {{CdTextfiles|simtel/simtel9510/disk2/DISC2/ARCHIVER/SQUASH.ZIP|SQUASH.ZIP}} - Public domain decompression code for one of the compression methods
  
 
== References ==
 
== References ==
 
* [[Wikipedia:ARC (file format)|ARC (file format): Wikipedia]]
 
* [[Wikipedia:ARC (file format)|ARC (file format): Wikipedia]]
* [http://www.fileformat.info/format/arc/index.dir Page at FileFormat.info]
 
* [http://www.textfiles.com/programming/FORMATS/arc_fmts.txt ARC file header format (among other archive types)]
 
* [http://apple2.org.za/gswv/a2zine/GS.WorldView/Resources/The.MacShrinkIt.Project/ARCHIVES.TXT Archive format info, including ARC]
 
 
* [http://www.esva.net/~thom/arclicense.html Original ARC license]
 
* [http://www.esva.net/~thom/arclicense.html Original ARC license]
 
* [http://textfiles.com/computers/sea.txt SEA vs. PKWARE suit commentary] (which worries that tech people will end up spending more time in court than working on programs in the future, and is quaintly old-fashioned in that it refers to a legal case that was settled for $62,500, not the billions that are involved in modern-day tech legal cases)
 
* [http://textfiles.com/computers/sea.txt SEA vs. PKWARE suit commentary] (which worries that tech people will end up spending more time in court than working on programs in the future, and is quaintly old-fashioned in that it refers to a legal case that was settled for $62,500, not the billions that are involved in modern-day tech legal cases)
 
* [https://www.youtube.com/watch?v=_zvFeHtcxuA BBS Documentary Part 8: Compression]
 
* [https://www.youtube.com/watch?v=_zvFeHtcxuA BBS Documentary Part 8: Compression]
 
* [http://www.textfiles.com/programming/FORMATS/arc-lbr.pro ARC vs LBR comparison (1985)]
 
* [http://www.textfiles.com/programming/FORMATS/arc-lbr.pro ARC vs LBR comparison (1985)]

Revision as of 20:27, 4 September 2019

File Format
Name ARC (compression format)
Ontology
Extension(s) .arc, .ark
UTI public.archive.arc
Wikidata ID Q296496
Released 1985

ARC is a compressed archive format. It supports a number of different compression schemes, the most common of which are based on LZW.

Contents

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 0x1a 0x00. It is common for ARC files to have padding or other irrelevant data after the end-of-archive marker.

Each member begins with a 0x1a byte, then a byte indicating the compression method used for that member file. The usual compression methods are in the range 0x01 through 0x09.

PK-style comments

The PKARC/PKPAK software supports comments, apparently using a custom ARC format extension that appears after the end-of-archive marker.

Information based on reverse engineering: An ARC file with comments ends with an 8-byte trailer that begins with the signature 'P' 'K' 0xaa 0x55. This is preceded by a sequence of 32-byte records, each containing a comment, except for one that has a special purpose. The last 4 bytes of the file contain the offset of the special record. The special record somehow indicates whether an archive comment and/or file comments are present. An archive comment, if present, is in the record preceding the special record. File comment records come after the special record, in the same order as the members appear in the ARC file.

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

See also

Specifications

Sample files

Programs and Utilities

  • nomarch by Russell Marks, c. 2001 (Unix/GPL2) -- extract only.
    • Packaged for Debian-based Linux distributions: apt-get install nomarch
  • ARC
  • An ARC utility at CD.Textfiles.com
  • PKARC 3.6
  • PKPAK 3.61
  • SQUASH.ZIP - Public domain decompression code for one of the compression methods

References

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox