Compact File Set (CFS) is an archive and software distribution container file format based on:
Basic CFS files are compatible with ISO files, and can be read by many existing applications and systems.
Why CFS instead of ISO?
CD/DVD media can be written with UDF and/or ISO-9660, and with a number of different versions and extensions for each. Traditional ISO files are images of CD/DVD media, and inherit this large format variety.
Because of the large format variety with ISO files, implementing read support for ISO files is difficult. Implementing modification support for ISO files is even more difficult. A few software applications specialize in modifying ISO images, but the format complexity make this too expensive for many applications.
CFS limits the format variety to ISO-9660 with specific extensions, relaxations, and usage guidelines. It also defines the image file container format that is to be used to provide features such as compression, file splitting, and password protection. As compared to ISO files, CFS is intended to simplify the implementation and consistency of reading applications, and greatly simplify the implementation of modifying and writing applications.
Why CFS instead of ZIP
The ZIP format is a staple format used in many applications. All modern operating systems have some form of integrated support for ZIP files. For many applications ZIP is certainly the right choice over CFS or ISO.
ZIP does have its limitations including:
- Poor randam access performance in large compressed files due to lack of compression indexing.
- Poor compression performance in archives with many small files due to file based compression.
- File based password protection and encryption.
- Introduction of essentially proprietary compression algorithms, encryption, and other extensions.
- ZIP is targeted by many firewall and e-mail filtering applications, making it increasingly difficult to use for file transfers.
Why CFS instead of TAR, RAR, 7Z, etc
Most archive formats do not consistently provide the compression indexing necessary to allow efficient random access. This makes archive formats inefficient or unusable in file system related applications.
The data format and compression algorithms used in the RAR format are not freely available for use in other applications.
The 7Z archive format is documented, but available implementations of the numerous necessary compression algorithms have restricted licensing.
CFS is an open format. It is available for use in free or commercial applications without charge. To our knowledge, no parts of the format are covered by patents.
The documentation for CFS currently consists of a few C/C++ language header files and included developer notes.
Source code for ptiso, a CFS writer, is available on the download page. The ptiso source code can be used as a reference CFS writer implementation. Existing ISO reader implementations can be used with little or no modification to read CFS.
Developers wishing to implement CFS support in other applications are encouraged to contact Pismo Technic Inc. for support or to provide feedback.