THIS IS A DRAFT DOCUMENT
What's the difference between DAR, dar, and Dar?
While I make no warranty as to grammatical consistency: "DAR" indicates the DAR application suite. "dar" indicates the dar file format. "Dar" has no special meaning, but is most often the same as "dar" (at the beginning of a sentence, for example) but may also be a lazy representation of "DAR" if clearly indicated.
What is DAR?
DAR stands for Disk Archive and is the name of a command line application by Denis Corbin. DAR is a suite of applications used to back up directory trees and files. dar, the main archival tool, is supported by dar_xform, dar_slave, dar_manager, and dar_cp. The DAR Suite uses libdar, a C++ library, to read and write the dar file format. For more information about DAR, go to http://dar.linux.free.fr.
What is Libdar?
Libdar is the library behind the DAR Suite. Full API documentation can be found here and a tutorial here. The library is written in C++. It handles a fairly complete set of dar archive operations and is the standard implementation of the dar file format. Libdar can be compiled in several configurations, with or without many of the optional capabilities of the archive format.
Libdar has no required dependencies (!) but needs some or all of the following to implement optional features:
The DAR suite also uses the following applications for other optional features:
The above two applications are not required for DAR and are not used for Libdar.
Libdar can be compiled to support Extended Attributes if they are available on the system.
What is dar?
The dar format is an archival format with internal support for compression, encryption, and disk spanning. Further, the format provides explicit support for differential backup and management. The archives support all Posix file metadata including file type, hard linking, standard permissions and file times, and extended attributes. However, at this time dar archives do not support DOS or NTFS file attributes.
Dar archives are created with a catalog at the end which can be extracted individually and used for reference when creating differential backups.
The archives are organized for non-linear access and can not be read in a purely consecutive manner.
While error detection is included, dar archives do not contain imbedded recovery information. Parchive must be used for this purpose.
The Libdar library provides many other features, such as flat restoration and nodump flag recognition, that are not implicit in the dar format.
For Unix systems, the dar file format can be used as a replacement and enhancement of formats such as tar and cpio. At this time other formats are more suitable for non-Posix operating systems, but cross-platform support is always being improved.
The dar format specification has changed over time. The specification is available for several versions.
- dar format version 3 DRAFT
- dar format version 4 DRAFT
- dar format version 5 DRAFT
- dar format version k05 "kaylix series" DRAFT
- dar format version k06 "kaylix series" DRAFT
The kaylix series is a fork format derived from the standard dar format specification. The changes in the kaylix series are aimed towards eventual inclusion into the standard dar format. The main benefits of the kaylix series currently consist of several cross-platform portability enhancements.
A detailed comparison of dar and several common file formats is provided below. Dar format version 4 is used as the comparison point.
At this time, this chart is a draft document. Please report any omissions or mistakes as a bug against the website.
|
|
|
dar |
tar [1] |
rar |
zip |
7z |
ace |
arj |
jar [2] |
cpio |
rpm |
archive |
|
|
|
|
|
|
|
|
|
|
|
|
file entries [3] |
|
unlimited |
unlimited [4] |
unlimited ?? |
64 KiB |
16 Ei |
unlimited |
unlimited |
64 Ki |
unlimited [4] |
unlimited |
|
entry size |
|
unlimited [5] |
8 GiB (unlimited) |
4 GiB |
4 GiB |
16 EiB |
4 GiB |
4 GiB |
(4 GiB) |
4 GiB |
(4 GiB) |
|
entry name length |
|
unlimited |
99 characters (unlimited) |
64 KiB |
64 KiB |
16 Ei characters (32 EiB) |
64 KiB |
unlimited |
(64 KiB) |
64 KiB |
(64 KiB) |
|
compression |
|
|
yes |
no [6] |
yes |
yes |
yes |
yes |
|
yes |
no |
yes |
formats |
|
gzip, bzip2 |
|
?? LZ77 [7] |
deflate, others [8] |
LZMA, deflate, bzip2, others |
LZ77 |
|
(LZ77) |
|
gzip |
|
selective compression |
|
yes?? |
|
|
|
|
|
|
|
|
|
|
encryption |
|
|
yes |
no |
yes |
yes [9] |
yes |
no |
yes |
no |
no |
no |
formats |
|
weak [10], blowfish |
|
AES-128 |
varies |
AES-256 |
|
?? |
|
|
|
|
modes |
|
ECB |
|
|
|
CBC |
|
|
|
|
|
|
authentication |
|
|
no |
no |
yes |
no |
no |
no |
no |
yes |
no |
yes |
disk spanning |
|
|
yes |
no |
yes |
yes [11] |
yes |
yes |
|
no |
no |
no |
implicit archive modification [12] |
|
|
no |
add |
?? |
yes |
yes |
?? |
yes |
(yes) |
no |
no |
differential |
|
|
|
|
|
|
|
|
|
|
|
|
added, changed |
|
yes |
yes |
no |
?? |
no |
|
|
no |
no |
no |
|
deleted marker |
|
yes |
no |
no |
no |
no |
no |
no |
no |
no |
no |
|
archive file |
|
|
|
|
|
|
|
|
|
|
|
|
true consecutive [14] |
|
no |
yes |
?? |
no |
no |
yes |
no |
no |
yes |
yes |
|
non-consecutive |
|
yes |
no |
yes |
yes |
yes |
yes |
no |
yes |
no |
no |
|
special files |
|
|
|
|
|
|
|
|
|
|
|
|
hard-links |
|
yes |
yes |
no |
extension [15] |
no |
no |
no |
no |
yes |
yes |
|
posix file types [16] |
|
yes |
yes |
no |
extension |
no |
no |
no |
no |
yes |
yes |
|
metadata |
|
|
|
|
|
|
|
|
|
|
|
|
time |
|
posix |
posix [18] |
archive [19], msdos |
archive, msdos, posix extension |
msdos [20] |
archive |
archive |
posix, msdos [21] |
posix [18] |
posix |
|
posix user data [22] |
|
yes |
yes |
no |
extension |
no |
no |
no |
no |
yes |
yes |
|
posix permissions [23] |
|
yes |
yes |
yes |
no |
no |
no |
no |
no |
yes |
yes |
|
dos |
|
no |
no |
yes |
yes |
yes |
yes |
yes |
yes |
no |
no |
|
extended attributes [25] |
|
posix |
no |
os/2 |
ntfs, vms, os/2 |
ntfs |
no |
no |
java |
no |
no |
|
archive comments |
|
no |
no |
yes |
yes |
no |
yes |
yes |
yes |
no |
?? |
|
comment per entry |
|
no |
no |
yes |
yes |
no |
yes |
yes |
yes |
no |
?? |
|
multi-fork/stream data [26] |
|
no |
no |
no |
no |
no |
no |
no |
no |
no |
no |
|
time storage |
|
unix [28] |
unix [29] |
ms-dos, win32 |
ms-dos, unix, win32 |
win32 |
ms-dos |
ms-dos |
string [30] |
unix [29] |
unix |
|
character encoding |
|
|
UTF-8 |
UTF-8 |
UTF-8 |
UTF-8 |
UTF-16 [31] |
UTF-8 |
UTF-8 |
UTF-8 |
UTF-8 |
UTF-8 |
endian encoding |
|
|
network |
little |
|
|
little |
|
|
|
|
|
archive |
|
|
|
|
|
|
|
|
|
|
|
|
detection |
|
yes |
no |
yes |
yes |
yes |
yes |
|
yes |
no |
yes |
|
recovery [32] |
|
no |
no |
yes [33] |
no |
no |
yes |
|
no |
no |
no |
|
catalog |
|
|
yes [34] |
no |
no |
no |
no |
no |
no |
yes [35] |
no |
no |
catalog position |
|
|
end |
none |
?? |
end |
end |
?? |
?? |
?? |
none |
?? |
solid file |
|
|
no |
n/a |
yes |
no |
yes |
yes |
no |
no |
n/a |
no |
archive |
|
|
n/a |
no |
yes |
no |
no |
yes |
no |
yes |
no |
n/a |
|
|
|
|
|
|
|
|
|
|
|
|
|
specification |
|
|