The **zarf format** is similar to other **archive formats**, such as the **ar format**, the **cpio format**, the **shar format**, the **tar format**, and the **WARC format** — but is designed to be easier to understand and implement than all of the other **archive formats** and **container formats**.
Although **zarf** does _not_ require an extension (since it has magic-bytes), if a file-extension is used for a **zarf** file, it should use the `.zarf` extension (on systems where file-extensions are necessary).
Although **zarf** does _not_ require a MIME-type (since it has magic-bytes), f a MIME-type is used for a **zarf** file, it should use the `multipart/zarf` extension (on systems where file-extensions are necessary).
A **zarf** file is a single file that contain multiple other files.
Or said more formally, the **zarf format** is an **archive format** and **container format** that can combine multiple files into a single aggregate file.
One of the main points of the **zarf format** is that it was designed to be easy to understand and implement for programmers.
The **zarf format** is meant to be both programmer-legible and programmer-friendly.
The common way to store and think about **multiple files** is as part of a directory system.
For example:
* readme.xhtml
* LICENSE
* images/logo.png
* images/banner.png
* images/figures/figure1.jpeg
* images/figures/figure2.jpeg
* images/figures/figure3.png
This type of thing (and the files' contents) is what is inside of a **zarf** file.
One way of thinking about this is that, it is a **hierarchical key-value format** similar to (**but not the same as**) JSON, INI, and other similar formats.
For example, in JSON the preceding file system would probably look like:
```json
{
"readme.xhtml": "...",
"LICENSE": "...",
"images": {
"logo.png": "...",
"banner.png": "...",
"figures": {
"figure1.jpeg": "...",
"figure2.jpeg": "...",
"figure3.png": "..."
}
}
}
```
(Note that we are using `"..."` in the examples because we aren't listing the contents of the files.)
Also for example, in INI the preceding file system would look like:
```ini
readme.xhtml = ...
LICENSE = ...
[images]
logo.png = ...
banner.png = ...
[images.figures]
figure1.jpeg = ...
figure2.jpeg = ...
figure3.png = ...
```
(Again note that we are using `"..."` in the examples because we aren't listing the contents of the files.)