Xar

XAR为可扩展归档格式（）的缩写，是一种开源文件归档器和其文件格式。它创建于OpenDarwin项目，并在Mac OS X 10.5及更高版本中用于软件安装例程，以及在Safari 5.0及更高版本中用于浏览器扩展安装。 它取代了gzip压缩的pax文件的使用。
RPM的一个开发分支RPM5也使用xar。
文件结构.
.xar文件包含三部分：文件头，目录表（Table of Contents, TOC）和堆。 所有字段均按大端顺序存储。
目录表（TOC）.
与cpio，tar或ar的不同，Xar将TOC（目录表）存储在文件的开头，这使得附加到归档文件变得更加复杂，但是好处是不必扫描整个归档文件来提取单个包含的文件。 TOC以UTF-8编码的XML文档存储,zlib压缩。 存储在Xar中的每个文件都经过独立压缩/编码，可以使用不同的压缩方法对不同文件进行编码。在某些系统上，文件还可以通过xz或lzma压缩方法进行编码。
TOC示例
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;xar&gt;
 &lt;toc&gt;
 &lt;checksum style="sha1"&gt;
 &lt;offset&gt;0&lt;/offset&gt;
 &lt;size&gt;20&lt;/size&gt;
 &lt;/checksum&gt;
 &lt;file id="1"&gt;
 &lt;group&gt;staff&lt;/group&gt;
 &lt;gid&gt;20&lt;/gid&gt;
 &lt;user&gt;joe&lt;/user&gt;
 &lt;uid&gt;501&lt;/uid&gt;
 &lt;mode&gt;0755&lt;/mode&gt;
 &lt;type&gt;directory&lt;/type&gt;
 &lt;name&gt;com.foobar&lt;/name&gt;
 &lt;file id="2"&gt;
 &lt;group&gt;&lt;/group&gt;
 &lt;gid&gt;20&lt;/gid&gt;
 &lt;user&gt;&lt;/user&gt;
 &lt;uid&gt;501&lt;/uid&gt;
 &lt;mode&gt;0775&lt;/mode&gt;
 &lt;type&gt;directory&lt;/type&gt;
 &lt;name&gt;Contents&lt;/name&gt;
 &lt;file id="3"&gt;
 &lt;data&gt;
 &lt;length&gt;428&lt;/length&gt;
 &lt;offset&gt;20&lt;/offset&gt;
 &lt;size&gt;1005&lt;/size&gt;
 &lt;encoding style="application/x-gzip"/&gt;
 &lt;archived-checksum style="SHA1"&gt;a5f6f1461213a904f831d4ef6f214638342842ed&lt;/archived-checksum&gt;
 &lt;extracted-checksum style="SHA1"&gt;21d21a0c90378248ce0dfb6f345376d1b00d65fc&lt;/extracted-checksum&gt;
 &lt;/data&gt;
 &lt;group&gt;&lt;/group&gt;
 &lt;gid&gt;20&lt;/gid&gt;
 &lt;user&gt;&lt;/user&gt;
 &lt;uid&gt;501&lt;/uid&gt;
 &lt;mode&gt;0664&lt;/mode&gt;
 &lt;type&gt;file&lt;/type&gt;
 &lt;name&gt;Info.plist&lt;/name&gt;
 &lt;/file&gt;
 &lt;file id="4"&gt;
 &lt;group&gt;&lt;/group&gt;
 &lt;gid&gt;20&lt;/gid&gt;
 &lt;user&gt;&lt;/user&gt;
 &lt;uid&gt;501&lt;/uid&gt;
 &lt;mode&gt;0775&lt;/mode&gt;
 &lt;type&gt;directory&lt;/type&gt;
 &lt;name&gt;Resources&lt;/name&gt;
 &lt;file id="5"&gt;
 &lt;data&gt;
 &lt;length&gt;14868&lt;/length&gt;
 &lt;offset&gt;448&lt;/offset&gt;
 &lt;size&gt;274432&lt;/size&gt;
 &lt;encoding style="application/x-gzip"/&gt;
 &lt;archived-checksum style="SHA1"&gt;efe5c97921de7ccc5aebc158d158e9d4280d6814&lt;/archived-checksum&gt;
 &lt;extracted-checksum style="SHA1"&gt;45c8be42d1d9afdb57ddd5e9311453010ec46161&lt;/extracted-checksum&gt;
 &lt;/data&gt;
 &lt;group&gt;&lt;/group&gt;
 &lt;gid&gt;20&lt;/gid&gt;
 &lt;user&gt;&lt;/user&gt;
 &lt;uid&gt;501&lt;/uid&gt;
 &lt;mode&gt;0664&lt;/mode&gt;
 &lt;type&gt;file&lt;/type&gt;
 &lt;name&gt;foobar&lt;/name&gt;
 &lt;/file&gt;
 &lt;file id="6"&gt;
 &lt;data&gt;
 &lt;length&gt;17635&lt;/length&gt;
 &lt;offset&gt;15316&lt;/offset&gt;
 &lt;size&gt;45056&lt;/size&gt;
 &lt;encoding style="application/x-gzip"/&gt;
 &lt;archived-checksum style="SHA1"&gt;3c761ffcc81ee6e232e4f4a1c4a81654c26c4e52&lt;/archived-checksum&gt;
 &lt;extracted-checksum style="SHA1"&gt;0ea31f8ef0e5987a1838a64ab5c26ebf3ee4bc37&lt;/extracted-checksum&gt;
 &lt;/data&gt;
 &lt;group&gt;&lt;/group&gt;
 &lt;gid&gt;20&lt;/gid&gt;
 &lt;user&gt;&lt;/user&gt;
 &lt;uid&gt;501&lt;/uid&gt;
 &lt;mode&gt;0664&lt;/mode&gt;
 &lt;type&gt;file&lt;/type&gt;
 &lt;name&gt;docSet.skidx&lt;/name&gt;
 &lt;/file&gt;
 &lt;file id="7"&gt;
 &lt;group&gt;&lt;/group&gt;
 &lt;gid&gt;20&lt;/gid&gt;
 &lt;user&gt;&lt;/user&gt;
 &lt;uid&gt;501&lt;/uid&gt;
 &lt;mode&gt;0775&lt;/mode&gt;
 &lt;type&gt;directory&lt;/type&gt;
 &lt;name&gt;Documents&lt;/name&gt;
 &lt;file id="8"&gt;
 &lt;data&gt;
 &lt;length&gt;35790&lt;/length&gt;
 &lt;offset&gt;32951&lt;/offset&gt;
 &lt;size&gt;209242&lt;/size&gt;
 &lt;encoding style="application/x-gzip"/&gt;
 &lt;archived-checksum style="SHA1"&gt;5242cd71585c34e722932f324706f8c00e1ae0c5&lt;/archived-checksum&gt;
 &lt;extracted-checksum style="SHA1"&gt;c0e013e53d829511835e2b429abb5198731e9a3e&lt;/extracted-checksum&gt;
 &lt;/data&gt;
 &lt;group&gt;&lt;/group&gt;
 &lt;gid&gt;20&lt;/gid&gt;
 &lt;user&gt;&lt;/user&gt;
 &lt;uid&gt;501&lt;/uid&gt;
 &lt;mode&gt;0664&lt;/mode&gt;
 &lt;type&gt;file&lt;/type&gt;
 &lt;name&gt;foobar.html&lt;/name&gt;
 &lt;/file&gt;
 &lt;/file&gt;
 &lt;/file&gt;
 &lt;/file&gt;
 &lt;/file&gt;
 &lt;/toc&gt;
&lt;/xar&gt;