Формат архива XAR

XAR, сокращение от eXtensible ARchive, — это универсальный формат файлов, используемый для архивирования и сжатия файлов. Первоначально разработанный в рамках проекта OpenDarwin, XAR является гибким и расширяемым, позволяя включать различные типы метаданных и поддерживать несколько алгоритмов сжатия. Этот формат особенно примечателен тем, что он используется в macOS для упаковки программного обеспечения и обновлений системы.
Архивы XAR хранят файлы в структурированном формате, который включает каталог метаданных, который предоставляет подробную информацию о каждом файле в архиве. Это делает XAR мощным инструментом для разработчиков и системных администраторов, которым требуется надежное и адаптируемое решение для архивирования. Хотя XAR не так распространен, как такие форматы, как ZIP или TAR, он ценится за его способность обрабатывать сложные структуры данных и его интеграцию в конкретные среды, особенно в macOS.

Об архивной информации XAR

Информация архива XAR включает метаданные и данные, содержащиеся в архиве, созданном с использованием формата eXtensible ARchive (XAR). Архивы XAR хранят различные метаданные, включая атрибуты файлов, временные метки и информацию об используемых алгоритмах сжатия. Эти метаданные играют решающую роль в правильной идентификации и извлечении содержимого архива.
В дополнение к основной информации о файлах архивы XAR часто включают каталог метаданных для каждого файла в архиве с подробным описанием путей к файлам, разрешений и контрольных сумм. Такой уровень детализации гарантирует, что файлы могут быть точно восстановлены в исходное состояние во время распаковки. Архивная информация XAR может также включать сведения об используемых методах сжатия, например тип алгоритма и любые используемые параметры, которые необходимы для поддержания целостности и точности архивированных данных.

Эволюция XAR

Формат архива XAR возник в результате проекта OpenDarwin — инициативы с открытым исходным кодом, направленной на создание Дарвин-совместимой операционной системы. Разработанный как универсальный и расширяемый формат архива, XAR был направлен на преодоление ограничений существующих форматов архивов за счет включения обширных метаданных и поддержки различных алгоритмов сжатия.
За прошедшие годы в формат XAR были внесены усовершенствования, направленные на повышение производительности, безопасности и совместимости. Вот краткий обзор его эволюции:

  • 2004: Формат eXtensible ARchive (XAR) был разработан Apple Inc. для использования в Mac OS X. Он был разработан, чтобы предоставить более гибкую и расширяемую альтернативу существующим форматам архивов, таким как ZIP и TAR, особенно для упаковки обновлений программного обеспечения и системы. компоненты.
  • 2005: XAR стал ключевым компонентом Apple Mac OS X формат установочного пакета (.pkg), что позволило эффективно распространять и устанавливать программное обеспечение в системах Mac. Способность формата обрабатывать сложные файловые структуры и метаданные сделала его идеальным для этой цели.
  • 2007: XAR был открыт с открытым исходным кодом, что позволило разработчикам за пределами Apple использовать и изменять формат в своих целях. Этот шаг расширил потенциальные приложения XAR за пределы только macOS, хотя его использование осталось в основном в экосистеме Apple.
  • 2010-е годы: несмотря на первоначальные обещания, XAR не получил широкого распространения за пределами macOS. Однако он продолжал использоваться в процессах разработки программного обеспечения Apple, особенно для упаковки систем и приложений.
  • 2020-е годы: XAR остается специализированным форматом, в первую очередь связанным с системами упаковки и установки Apple. Хотя он не так широко используется, как другие форматы, он по-прежнему известен своей гибкостью и способностью включать в архивы богатые метаданные.

Структура архива XAR

Формат XAR (eXtensible ARchive) разработан для обеспечения гибкости и эффективности хранения и сжатия файлов. Он состоит из нескольких ключевых компонентов:

  • Заголовок: Содержит важные метаданные об архиве, такие как версия формата и информация о размере.
  • Оглавление (TOC): Индексный список файлов на основе XML, их размеры, методы сжатия и другие сведения.
  • Данные: фактическое сжатое или несжатое содержимое файла. – Нижний колонтитул: Необязательный раздел для дополнительной информации или контрольных сумм.

Преимущества этого формата

Формат XAR предлагает несколько преимуществ по сравнению с традиционными форматами архивов:

  • Гибкость: XAR поддерживает различные алгоритмы сжатия, позволяя пользователям выбирать оптимальный метод для своих данных.
  • Расширяемость: формат можно расширить за счет пользовательских метаданных, предоставляющих дополнительную информацию об архиве и его содержимом.
  • Эффективность: структура XAR оптимизирована для эффективного хранения и извлечения файлов.
  • Богатство метаданных. Включение подробных метаданных файлов позволяет улучшить организацию и управление архивными данными.
  • Автономная упаковка: XAR можно использовать для создания автономных пакетов, что упрощает распространение и установку программного обеспечения. Производительность: XAR часто обеспечивает более высокую производительность по сравнению с другими форматами архивов, особенно при работе с большими файлами.

Операции, поддерживаемые архивом XAR

Aspose.ZIP позволяет пользователю извлечь конкретную запись или весь архив. Архивы XAR поддерживают множество операций, которые позволяют пользователям эффективно управлять архивными данными и получать к ним доступ. Эти операции можно условно разделить на:

  1. Распаковка:
    • Извлечение всего содержимого архива в указанное место.
    • Извлечение определенных файлов или каталогов из архива.
    • Сохранение исходной структуры файла и метаданных при извлечении.
  2. Архивация:
    • Создание новых архивов XAR.
    • Добавление файлов и каталогов в существующие архивы XAR.
    • Указание методов сжатия отдельных файлов внутри архива.
    • Включение пользовательских метаданных в архив для улучшения организации.

Структура архива XAR

Формат XAR (eXtensible ARchive) разработан с учетом гибкости и расширяемости, что делает его хорошо подходящим для сложных задач по упаковке файлов. Вот обзор типичной структуры архива XAR:

Структура архива XAR

Внутренняя структура архива

  • Заголовок: Заголовок содержит важные метаданные о самом архиве, например:
    • Магическое число: идентифицирует файл как архив XAR.
    • Номер версии: указывает версию формата XAR.
    • Размер оглавления (TOC): указывает длину раздела оглавления.
    • Размер кучи: определяет размер области хранения данных.
  • Оглавление (TOC): TOC — это структура на основе XML, которая каталогизирует файлы в архиве. Он включает подробную информацию для каждого файла, в том числе:
    • Путь к файлу: исходный путь к файлу в архиве.
    • Размер файла: размер файла в несжатом виде.
    • Метод сжатия: алгоритм сжатия, используемый для файла (например, gzip , bzip2 ).
    • Контрольная сумма: значение хеш-функции для проверки целостности данных.
    • Атрибуты файла: разрешения, время изменения и другие метаданные файла.
  • Куча: Куча — это область хранения данных, в которой хранится сжатое или несжатое содержимое файла. TOC предоставляет смещения и длину для поиска определенных файлов в куче.

Примеры использования XAR

С помощью Aspose.Zip вы можете легко извлекать отдельные файлы или целые структуры каталогов из архивов XAR. Такая гибкость позволяет получить доступ к определенным данным в архиве без ущерба для его целостности. Кроме того, библиотека предоставляет возможности сохранения атрибутов файла, таких как разрешения и временные метки, во время процесса извлечения. Также Aspose.Zip облегчает создание архивов XAR. У вас есть свобода выбирать отдельные файлы или целые папки для включения в архив. Более того, библиотека поддерживает различные алгоритмы сжатия, что позволяет оптимизировать размеры файлов и сбалансировать степень сжатия с требованиями к производительности. Вот несколько примеров манипуляций с архивами XAR:

Create XAR archive with two entries compressed with Zlib method via C#.

    FileInfo fi1 = new FileInfo("alice29.txt");
    FileInfo fi2 = new FileInfo("asyoulik.txt");

    using (var archive = new XarArchive(new XarZlibCompressionSettings()))
    {
        archive.CreateEntry("alice29.txt", fi1, false);
        archive.CreateEntry("fields.c", fi2, false);
        archive.Save(xarFile);
    }

Extract Whole XAR Arcive via C#.

    using (XarArchive xarArchive = new XarArchive("data.xar"))
    {
        xarArchive.ExtractToDirectory("data");
    }

Create XAR archive with two entries compressed with Zlib method via Java

    java.io.File fi1 = new java.io.File("alice29.txt");
    java.io.File fi2 = new java.io.File("asyoulik.txt");
    String xarFile = "output.xar";

    try (XarArchive archive = new XarArchive(new XarZlibCompressionSettings())) {
        archive.createEntry("alice29.txt", fi1, false);
        archive.createEntry("fields.c", fi2, false);
        archive.save(xarFile);
    }

Extract Whole XAR Arcive using Java.

    try (XarArchive archive = new XarArchive("data.xar")) {
        archive.extractToDirectory("data");
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Дополнительная информация о расширяемом ARchive

Часто Задаваемые Вопросы

1. Что такое архив XAR и для чего он используется?

XAR (eXtensible ARchive) — это формат файлов, используемый для архивирования и сжатия файлов. В первую очередь он был разработан для использования в экосистеме macOS. Архивы XAR могут хранить несколько файлов и каталогов в одном файле, часто со сжатием для экономии места. Они используются для распространения программного обеспечения, обновлений системы и общей упаковки файлов.

2. Является ли XAR широко используемым форматом архивов?

По сравнению с ZIP и RAR, XAR используется реже. Его основное внимание к экосистеме macOS ограничивает его более широкое внедрение. Однако его эффективность и возможности делают его ценным вариантом для конкретных случаев использования в этой среде.

3. Могу ли я открыть архив XAR в Windows?

Хотя могут существовать инструменты или библиотеки, которые могут работать с архивами XAR в Windows, этот формат не поддерживается внутри компании. Вы можете столкнуться с проблемами совместимости или ограничениями. В этой ОС лучше использовать сторонние API, специализирующиеся на работе с XAR-архивами.