CFS, Compact File Set
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 random 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.
Documentation
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.
cfs.h - Compact File Set definition
and developer notes.
ciso.h - Compact ISO definition
and developer notes.
Source code for ptcfs, a CFS writer, is available on the download
page. The ptcfs 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.
|