**XAR**为**可扩展归档格式**（英語：）的缩写，是一种开源文件归档器和其文件格式。它创建于OpenDarwin项目，并在Mac OS X 10.5及更高版本中用于软件安装例程，以及在Safari 5.0及更高版本中用于浏览器扩展安装。 它取代了gzip压缩的pax文件的使用。

RPM的一个开发分支RPM5也使用xar。

文件结构
----

.xar文件包含三部分：文件头，目录表（Table of Contents, TOC）和堆。 所有字段均按大端顺序存储。

### 文件头

| 偏移# | 长度（字节） | 描述 |
| --- | --- | --- |
| 0 | 4 | 文件特征签名，总是`xar!` |
| 4 | 2 | 文件头大小 |
| 6 | 2 | 文件版本，目前只有版本1 |
| 8 | 8 | TOC压缩后大小 |
| 16 | 8 | TOC压缩前大小 |
| 24 | 4 | 校验和算法:
* 0 = 无
* 1 = SHA1
* 2 = MD5
* 3 = SHA-256
* 4 = SHA-512

 |
| 28 | 0, 4 , 36 | 填充字节或校验和算法名称 |

### 目录表（TOC）

与cpio，tar或ar的不同，Xar将TOC（目录表）存储在文件的开头，这使得附加到归档文件变得更加复杂，但是好处是不必扫描整个归档文件来提取单个包含的文件。 TOC以UTF-8编码的XML文档存储,zlib压缩。 存储在Xar中的每个文件都经过独立压缩/编码，可以使用不同的压缩方法对不同文件进行编码。在某些系统上，文件还可以通过xz或lzma压缩方法进行编码。

**TOC示例**

```
<?xml version="1.0" encoding="UTF-8"?>
<xar>
 <toc>
 <checksum style="sha1">
 <offset>0</offset>
 <size>20</size>
 </checksum>
 <file id="1">
 <group>staff</group>
 <gid>20</gid>
 <user>joe</user>
 <uid>501</uid>
 <mode>0755</mode>
 <type>directory</type>
 <name>com.foobar</name>
 <file id="2">
 <group></group>
 <gid>20</gid>
 <user></user>
 <uid>501</uid>
 <mode>0775</mode>
 <type>directory</type>
 <name>Contents</name>
 <file id="3">
 <data>
 <length>428</length>
 <offset>20</offset>
 <size>1005</size>
 <encoding style="application/x-gzip"/>
 <archived-checksum style="SHA1">a5f6f1461213a904f831d4ef6f214638342842ed</archived-checksum>
 <extracted-checksum style="SHA1">21d21a0c90378248ce0dfb6f345376d1b00d65fc</extracted-checksum>
 </data>
 <group></group>
 <gid>20</gid>
 <user></user>
 <uid>501</uid>
 <mode>0664</mode>
 <type>file</type>
 <name>Info.plist</name>
 </file>
 <file id="4">
 <group></group>
 <gid>20</gid>
 <user></user>
 <uid>501</uid>
 <mode>0775</mode>
 <type>directory</type>
 <name>Resources</name>
 <file id="5">
 <data>
 <length>14868</length>
 <offset>448</offset>
 <size>274432</size>
 <encoding style="application/x-gzip"/>
 <archived-checksum style="SHA1">efe5c97921de7ccc5aebc158d158e9d4280d6814</archived-checksum>
 <extracted-checksum style="SHA1">45c8be42d1d9afdb57ddd5e9311453010ec46161</extracted-checksum>
 </data>
 <group></group>
 <gid>20</gid>
 <user></user>
 <uid>501</uid>
 <mode>0664</mode>
 <type>file</type>
 <name>foobar</name>
 </file>
 <file id="6">
 <data>
 <length>17635</length>
 <offset>15316</offset>
 <size>45056</size>
 <encoding style="application/x-gzip"/>
 <archived-checksum style="SHA1">3c761ffcc81ee6e232e4f4a1c4a81654c26c4e52</archived-checksum>
 <extracted-checksum style="SHA1">0ea31f8ef0e5987a1838a64ab5c26ebf3ee4bc37</extracted-checksum>
 </data>
 <group></group>
 <gid>20</gid>
 <user></user>
 <uid>501</uid>
 <mode>0664</mode>
 <type>file</type>
 <name>docSet.skidx</name>
 </file>
 <file id="7">
 <group></group>
 <gid>20</gid>
 <user></user>
 <uid>501</uid>
 <mode>0775</mode>
 <type>directory</type>
 <name>Documents</name>
 <file id="8">
 <data>
 <length>35790</length>
 <offset>32951</offset>
 <size>209242</size>
 <encoding style="application/x-gzip"/>
 <archived-checksum style="SHA1">5242cd71585c34e722932f324706f8c00e1ae0c5</archived-checksum>
 <extracted-checksum style="SHA1">c0e013e53d829511835e2b429abb5198731e9a3e</extracted-checksum>
 </data>
 <group></group>
 <gid>20</gid>
 <user></user>
 <uid>501</uid>
 <mode>0664</mode>
 <type>file</type>
 <name>foobar.html</name>
 </file>
 </file>
 </file>
 </file>
 </file>
 </toc>
</xar>

```

参考来源
----

1. 1 2 .  [2019-03-19]. （原始内容存档于2019-03-27） （英语）.
2. ↑ .  [2020年9月21日]. （原始内容存档于2007年2月7日）.
3. ↑ . rpm5.org.  [2020-09-21]. （原始内容存档于2011-12-04）.
4. 1 2 . GitHub.  [2020-09-21]. （原始内容存档于2021-05-06）.
5. 1 2  Braun, Rob; Fuller, Landon; Leimbach, David; Van Vechten, Kevin.. 2015-06-04  [2019-03-26].
6. ↑ . code.google.com.  [2020-09-21]. （原始内容存档于2021-10-29）.

外部链接
----

* 自由软件主题

* Xar homepage （页面存档备份，存于）
* Apple xar homepage （页面存档备份，存于）

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
歸檔格式 |
| --- |
|  |
| 僅歸檔 | 
* ar
* Cpio
* shar（英语：）
* tar
* LBR（英语：）
* BagIt（英语：）
* WAD（英语：）

 |
|  |
| 僅壓縮 | 
* Bzip2
* Gzip
* lzip（英语：）
* LZMA
* lzop（英语：）
* Xz
* SQ（英语：）
* compress（英语：）

 |
|  |
| 歸檔並壓縮 | 
* 7z
* ACE
* ARC
* ARJ
* B1（英语：）
* Cabinet
* cfs（英语：）
* cpt（英语：）
* DGCA（英语：）
* .dmg
* .egg（英语：）
* kgb（英语：）
* LHA
* LZX
* MPQ（英语：）
* PEA
* RAR
* rzip（英语：）
* sit（英语：）
* SQX（英语：）
* UDA（英语：）
* Xar
* zoo（英语：）
* ZIP
* ZPAQ（英语：）

 |
|  |
| 軟體封裝和分发 | 
* APK
* deb
* Package (macOS)（英语：）
* RPM
* MSI
* JAR
	+ WAR
	+ Java RAR
	+ EAR（英语：）

 |
|  |
| 文件封裝和分发 | 
* OEB打包格式
* OEBPS容器格式
* 开放打包约定
* PAQ（英语：）

 |
|  |
| 
* 非条目页面**比较**
* 列表级条目**列表**
* 分类 **|分类**

 |

 |