Формат Xar, чем открыть

Обновлено: 20.11.2024

Файл XAR – это ZIP-файл с расширением ".xar", содержащий (необязательно) файл дескриптора "package.xml", в котором каждый документ (включая историю документа, xobjects, вложения, xclass и т. д.) XML-файл.

Текущий формат

  • name : имя, представляющее содержимое XAR.
  • описание: более подробное описание содержания XAR.
  • лицензия: можно указать, под какой лицензией публикуется этот контент XAR
  • автор : Вики-автор этого XAR. Это важно. Когда XAR будет импортирован, если выбран параметр «импортировать как резервный пакет», автор, указанный в этом поле, будет сохранен (у страниц этот автор будет последним автором).
  • extensionId (необязательный): если он установлен, это помечает XAR как содержащий расширение. Таким образом, когда вы импортируете его, Extension Manager сможет сопоставить его со своей базой данных Extension и выполнить проверку версий.
  • preserveVersion (необязательно): если установлено значение true, история сохраняется (история для каждой страницы является частью ее XML)
  • backupPack : значение true означает, что XAR является резервным пакетом. Импорт должен решить, импортировать ли его в качестве резервного пакета или нет, но это предоставляет информацию о том, что это резервный пакет.
  • файлы
    • language : язык страницы. Содержимое страницы по умолчанию должно использовать пустую строку.
    • type начиная с 1.1: тип документа, можно установить любой тип, так как расширения могут вносить новый тип. Более подробную информацию о них можно найти в документации XAR Extensions
    • Действие по умолчанию устарело: при применении (что случается не очень часто) это действие по умолчанию применяется к документу
      • -1 : не определено, его точная интерпретация зависит от того, кто его читает.
      • 0 : перезаписать, все, что есть в базе данных, должно быть перезаписано. Это то, что подключаемый модуль Maven XAR устанавливает по умолчанию при создании XAR.
      • 1 : пропустить, пропустить этот документ
      • 2 : объединить, попытаться объединить документ с тем, что находится в базе данных.

      Все даты хранятся в виде количества миллисекунд с 1 января 1970 года, 00:00:00 часового пояса по Гринвичу.

      Журнал изменений

      Текущий формат

      Обычно файлы документов располагаются по пути, где каждое родительское пространство является папкой (как в Space/NestedSpace/Page.xml ), но технически это не является обязательным, и синтаксические анализаторы не будут учитывать путь (только тот, который указывается в фактическом файле документа).

      Вы можете просмотреть XML документа, экспортировав его и открыв XAR, или используя параметр xpage=xml в URL-адресе вики-страницы.

      version= "1.5" reference= "Space.NestedSpace.Page" locale= "" >
      Space.NestedSpace
      Страница

      en
      0 < br />XWiki.creator
      946684800000
      jrcsrevisions


      30
      0
      com.xpn.xwiki.objects.classes.NumberClass

      • xwikidoc : корневой элемент XML
        • версия начиная с 1.1 : версия формата XML, если не указано, то это 1.0
        • ссылка с версии 1.2: ссылка на документ
        • locale начиная с версии 1.2: языковой стандарт (как определено в спецификациях Java Locale) документа
        • web : устарело, начиная с версии 1.2, в пользу свойства атрибута reference, содержащего уникальное пространство документа, которое не принимается во внимание, когда атрибут reference установлен в xwikidoc< /li>
        • name : устарело, начиная с версии 1.2, вместо атрибута reference используется название документа, не учитываемое при установке атрибута reference в xwikidoc
        • язык : устарел с версии 1.2 в пользу атрибута locale языкового стандарта (как определено в спецификациях Java Locale ) документа, не учитываемого при атрибуте reference устанавливается в xwikidoc
        • date : дата последнего изменения документа (формат: дата эпохи и время UTC)
        • contentUpdateDate : дата последнего изменения содержимого документа (формат: дата эпохи и время UTC)
        • версии : сериализованная версия Java-объекта com.xpn.xwiki.doc.rcs.XWikiRCSArchive
        • вложение
          • имя файла: имя файла
          • автор: автор вложения
          • дата: дата и время эпохи UTC.
          • версия: версия прикрепленного файла.
          • комментарий: комментарий, связанный с версией вложения.
          • контент: двоичный контент, сериализованный в base64.
          • размер файла: размер вложения в байтах.
          • mimetype: MIME-тип вложения (согласно RFC 6838 )
          • charset: кодировка вложения (как указано в HTTP Content-Type)
          • версии устарели с версии 1.4 в виде редакций : дамп архива JRCS, содержащий историю вложения, устарел с версии 12.0
          • revisions начиная с 1.4 : версии вложения (замените versions), содержат те же свойства, что и вложение, плюс "contentAlias"
            • revision/contentAlias: псевдоним содержимого указанной версии ревизии вложения. Пустая строка для текущего вложения.

            TODO Добавить документацию для других элементов

            Журнал изменений

            Добавить понятие автора исходного документа метаданных.

            Новый формат для ревизий вложений, обеспечивающий потоковую передачу и дедупликацию.

            Используйте XML 1.1 (вместо 1.0).

            Поддержка вложенных пространств.

            • и устарели (но все еще производятся)
            • новые атрибуты ссылки и локали в элементе

            У вас возникли проблемы с открытием файла XAR или вам просто интересно, что он содержит? Мы объясним, для чего используются эти файлы, и покажем вам программное обеспечение, которое, как мы знаем, может открывать или иным образом обрабатывать ваши файлы.

            Что такое файл XAR?

            Файлы XAR можно использовать по-разному, и XAR Archive — одно из них.

            Файлы с расширением XAR — это архивы, созданные в формате eXtensible ARchive, изобретенном Apple и используемом в Mac OS при установке программного обеспечения и расширений браузера Safari.

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

            Как открыть файлы XAR

            Мы определили 3 средства открытия XAR, которые совместимы с этим конкретным типом файла XAR.

            Программы, открывающие файлы архива XAR

            Последнее обновление: 15 декабря 2021 г.

            Все известные форматы файлов с расширением .XAR

            Хотя XAR-архив является популярным типом XAR-файла, мы знаем о двух различных вариантах использования расширения .XAR. Различные программы могут использовать файлы с одним и тем же расширением для разных типов данных.

            Векторный рисунок Ксары

            Формат файла Xar – это открытый формат векторной графики, поэтому файлы имеют очень маленький размер по сравнению с другими векторными форматами. Это собственный графический формат для приложения Xara X и его предшественника CorelXARA.

            XAR предшествует более поздним форматам, таким как SVG, но по-прежнему дает более компактные файлы.

            Формат файла XAR является открытым стандартом: спецификация XAR

            Хотя мы сами еще не проверяли приложения, наши пользователи предложили 10 различных открывателей XAR, которые вы найдете в списке ниже.

            Различные приложения, использующие файлы с этим расширением

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

            BitZipper Проверено
            7-Zip Подтверждено
            PowerArchiver Подтверждено
            FreeArc Отправлено пользователем
            Hamster Lite Archiver Отправлено пользователем
            WoopieZIP Отправлено пользователем
            UnzipLite Отправлено пользователем
            Hamster Бесплатный архиватор Представлено пользователем
            < td >Отправлено пользователем
            Hamster Free ZIP Archiver Отправлено пользователем
            Бесплатная программа для открытия Zip Отправлено пользователем
            CubeICE Отправлено пользователем
            TwidoSuite
            360 Отправлено пользователем

            Не уверены, какой тип файла вы пытаетесь открыть? Попробуйте наш новый анализатор файлов. Это бесплатный инструмент, который может идентифицировать более 11 000 различных типов файлов — скорее всего, и ваши! Это поможет вам найти программное обеспечение, которое может обрабатывать файлы определенного типа. Загрузите анализатор файлов здесь.

            XAR позволяет упаковать множество файлов в один автономный исполняемый файл. Это упрощает распространение и установку.

            Файл .xar представляет собой образ файловой системы, доступный только для чтения, который при подключении выглядит как обычный каталог для программ пользовательского пространства. Для этого требуется однократная установка драйвера для этой файловой системы (SquashFS).

            XAR произносится как «царь» (/t͡ʂar/). «X» в XAR предназначен для использования в качестве заполнителя для всех других букв, поскольку в Facebook этот формат изначально был разработан для замены PAR на основе ZIP (архивы Python), JSAR (архивы JavaScript), LAR (архивы Lua) и т. д. .

            Существует два основных варианта использования файлов XAR. Первый — это просто сбор некоторого количества файлов для автоматического атомарного монтирования где-нибудь в файловой системе.Использование файла XAR значительно уменьшает размер данных на диске, которые он содержит. Сжатие ниже 20% от исходного размера не является чем-то необычным. Это может сэкономить несколько гигабайт на машину и уменьшить случайный дисковый ввод-вывод. Это особенно важно на машинах с флэш-памятью.

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

            Это может заменить файлы virtualenvs и PEX системой, которая работает быстрее, имеет меньше накладных расходов, более совместима и обеспечивает лучшее сжатие. Недостатком является то, что для монтирования требуется помощник setuid.

            Преимущества использования XAR для Python

            SquashFS для Python выглядит как обычные файлы на диске. Это позволяет использовать обычный импорт, который лучше поддерживается CPython.

            SquashFS для вашего приложения также выглядит как обычные файлы. Вам не нужно использовать pkg_resources или другие приемы для доступа к файлам данных в вашем пакете.

            SquashFS со сжатием Zstandard экономит место на диске также по сравнению с ZIP-файлом.

            SquashFS не требует распаковки файлов .so во временное расположение, как это делают ZIP-файлы.

            SquashFS запускается быстрее, чем распаковка ZIP-файла. Вам нужно смонтировать файловую систему только один раз. Последующие вызовы вашего приложения будут повторно использовать существующее монтирование.

            SquashFS распаковывает только те страницы, которые используются приложением, а распакованные страницы кэшируются в кэше страниц.

            SquashFS доступен только для чтения, поэтому целостность вашего приложения гарантирована по сравнению с использованием virtualenv или распаковкой во временный каталог.

            Оптимизация производительности (как пространства, так и времени выполнения) была ключевой целью разработки XAR. Мы провели контрольные тесты с помощью инструментов с открытым исходным кодом, чтобы сравнить PEX, XAR и собственные установки по следующим показателям:

            • Размер: размер исполняемого файла в байтах.
            • Время холодного запуска: время, затрачиваемое на то, чтобы ничего не монтировать и не извлекать.
            • Время горячего старта: время, затраченное на извлечение кеша или монтирование файлов XAR squashfs.

            PEX создаются с помощью python3 setup.py bdist_pex --bdist-all , а XAR создаются с помощью python3 setup.py bdist_xar --xar-compression-algorithm=zstd .

            < /tr> < tr>
            Консольный скрипт Размер Время холодного запуска Время горячего запуска
            django-admin (собственный) 22851072 B - 0,220 с
            django-admin.pex 8529089 B 1,705 с 0,772 с
            django-admin.xar 5464064 Б (-36%) 0,141 с (-92%) 0,122 с (-84 %)
            черный (собственный) 1020928 B - 0,245 с
            black.pex 677550 B 0,737 с 0,619 с
            black.xar 307200 B (-55%) 0,245 с (-67%) 0,219 с (-65%)< /td>
            jupyter (родной) 64197120 B - 0,399 с
            jupyter.pex 17315669 Б 2,152 с 1,046 с
            jupyter.xar 17530880 B (+1%) 0,213 с (-90%) 0,181 с (-83%)

            Результаты показывают, что размер файла (при сжатии zstd) и время запуска улучшаются при использовании XAR. Это улучшение при доставке на большое количество серверов, особенно с исполняемыми файлами с коротким временем выполнения, такими как небольшие сценарии сбора данных на веб-серверах или интерактивные инструменты командной строки.

            • Linux или macOS
            • Python >= 2.7.11 и >= 3.5 для создания XAR >= 0.1.102 с squashfuse_ll для запуска XAR

            Компоненты XAR

            Это подключаемый модуль setuptools, позволяющий упаковать приложение Python в виде файла .xar. Для этого требуются squashfs-tools. Установите его из PyPI, чтобы получить стабильную версию:

            или вы можете установить его из этого репозитория:

            После установки перейдите в свой любимый проект Python с консольным скриптом и запустите:

            Расширение bdist_xar для setuptools имеет параметры для настройки XAR, самое главное --interpreter устанавливает используемый интерпретатор Python. Запустите python setup.py bdist_xar --help, чтобы просмотреть полный список параметров.

            Это двоичный файл, написанный на C++ и используемый для монтирования образа SquashFS. Для этого требуется установленный squashfuse. Обратите внимание, что текущий пакет squashfuse в Ubuntu не включает squashfuse_ll , поэтому вам придется устанавливать его из исходного кода.

            Эту часть кода можно создать с помощью:

            XAR предоставляет простой интерфейс командной строки для создания XAR из исполняемых файлов или каталогов Python. Мы можем создать XAR из существующего исполняемого zip-файла Python, например PEX.

            Вы также можете создать XAR из каталога и указать XAR, какой исполняемый файл запускать после его запуска.

            myxar/echo > chmod +x myxar/echo > make_xar --raw myxar --raw-executable echo --output echo > ./echo hello world hello world">

            xarexec_fuse выполнит переданный ему исполняемый файл, используя путь XAR в качестве первого аргумента, а затем перешлет аргументы XAR.

            Локальное выполнение тестов Circle CI

            Сначала вам нужно установить докер (и, возможно, докер-машину), так как он запускает код. Затем вам нужно установить cli Circleci и запустить

            Как подписать архив xar

            После создания инструмента xar с поддержкой подписи архив xar (включая формат плоского файла Apple .pkg) может быть подписан.

            Проверьте версию xar

            Чтобы убедиться, что инструмент xar поддерживает сигнатуру, попробуйте сделать следующее: Вывод должен быть таким: Если номер версии меньше 1.6.1, значит ваша версия xar инструмент слишком устарел для использования этих инструкций (а также содержит различные ошибки).

            Соберите свой сертификат(ы) и ключ

            Для подписания файла архива xar потребуется сертификат подписи в формате DER (двоичный) вместе с ключом подписи в формате PEM (ASCII).

            Кроме того, если ваш сертификат подписи не был подписан непосредственно корневым сертификатом, вам также должны быть доступны любые промежуточные сертификаты (опять же в формате DER) в цепочке сертификатов между вашим сертификатом подписи и корневым сертификатом — вам не нужны никакие ключи подписи для этих промежуточных сертификатов.

            Например, предположим, что у вас есть следующая цепочка сертификатов:

            root.crt Некоторый корневой сертификат, который уже был предварительно установлен поставщиком ОС/браузера и следовательно, неявно доверенный
            toporg.crt Сертификат верхнего уровня для какой-либо организации (обычно получаемый путем оплаты центра сертификации за его подпись), который был подписанный root.crt
            intorg.crt Промежуточный сертификат для какой-либо организации (возможно, для подразделения разработчиков в этой организации), который был подписан toporg.crt
            leaf.crt Листовой сертификат подписи, для которого у вас есть ключ подписи (обычно полученный путем оплаты владельцу сертификата, подписавшего это), подписанный intorg.crt

            Эта цепочка сертификатов является лишь примером. Реальные цепочки сертификатов могут содержать другое количество сертификатов, чем показано здесь, используя большее или меньшее количество сертификатов в цепочке.

            Когда получатель подписанного архива xar пытается проверить подпись, все сертификаты в цепочке должны быть доступны. Конечный сертификат подписи всегда будет присутствовать в архиве xar, а любые доверенные корневые сертификаты всегда будут присутствовать на машине, выполняющей проверку.

            Однако у получателя нет средств для получения каких-либо сертификатов между конечным сертификатом подписи и доверенным корневым сертификатом; без них проверка подписи всегда будет давать сбой. Возможно, получатель уже видел промежуточные сертификаты и спрятал их, но на такое поведение нельзя полагаться.

            В приведенном выше примере цепочки сертификатов сертификат toporg.crt и сертификат intorg.crt являются промежуточными сертификатами.

            Чтобы гарантировать успешную проверку подписи, все промежуточные сертификаты всегда должны быть включены в архив xar. Хорошим тоном является также включить корневой сертификат, чтобы, если у получателя его еще нет (и, следовательно, он не является доверенным), по крайней мере его полная информация могла быть отображена, чтобы помочь сделать осознанный выбор о том, следует ли доверяйте этому.

            Подпишите файл xar

            Эти примеры команд подписания написаны для sh-совместимой оболочки и также требуют наличия команды openssl.

            Чтобы успешно подписать файл xar с помощью команд из этого раздела, в архиве xar должны использоваться хэши контрольной суммы SHA-1 (по умолчанию), а в листовом сертификате подписи должен использоваться SHA-1 с шифрованием RSA (он же sha1WithRSAEncryption — см. RFC). 3447 раздел A.2) алгоритм подписи для подписей (см. здесь инструкции по проверке алгоритма подписи сертификата).

              Определить размер подписи в байтах

            Характеристики ключа подписи (длина в битах, алгоритм и т. д.) определяют размер генерируемых им подписей. Чтобы подписать архив xar, для подписи должно быть зарезервировано правильное количество места, поэтому мы должны определить длину подписи, создаваемой ключом подписи.

            Приведенная выше команда используется для автоматизации процесса подписания путем сохранения длины подписи в байтах (в виде числа ASCII) в файле siglen.txt. Однако то же самое можно выполнить вручную с помощью только команды openssl, предварительно создав пустой файл с именем empty.txt (может быть и одна пустая строка). Затем с помощью
            openssl dgst -sign key.pem -binary -out sig.dat cert ” и двухзначный суффикс и помещены в указанный каталог (в данном случае certs). Конечный сертификат подписи всегда называется «cert00».

            Если пример цепочки сертификатов использовался для подписи файла signed.xar и все четыре сертификата были переданы команде xar с использованием --cert-loc , то параметр --extract-certs создаст четыре файла. «cert00» будет соответствовать «leaf.crt», «cert01» будет соответствовать «intorg.crt», «cert02» будет соответствовать «toporg.crt», а «cert03» будет соответствовать «root.crt». /p>

            Советы по работе с командами OpenSSL

            Преобразование закрытых ключей формата .p12

            Попытка быть умной и опустить завершающую команду «openssl rsa -out key.pem» оставляет лишний материал в выходном файле и не может создать выходной файл в формате закрытого ключа RSA, поэтому результирующий ключ файл может фактически не работать для подписи архива.

            Преобразование сертификатов формата .p12

            Пытаясь быть умным и опуская конечную команду «openssl rsa -out key.pem», в выходном файле остаются лишние данные, и не удается создать выходной файл сертификата X509 в формате DER, поэтому результирующий сертификат на самом деле файл нельзя было бы использовать с опцией --cert-loc xar.

            Не все файлы .p12 содержат сертификаты. Если в файле нет сертификата, приведенная выше последовательность команд выдаст ошибку.

            Преобразование сертификатов PEM в формат DER

            Если у вас есть сертификат в формате PEM (вы можете сказать, потому что вы можете открыть файл в своем любимом текстовом редакторе, и одна из первых строк файла будет «----- НАЧАТЬ СЕРТИФИКАТ----- ») с именем cert.pem, вы можете легко преобразовать его в файл формата DER cert.der следующим образом:

            Чтобы сделать обратное, вы должны использовать команду
            openssl x509 -inform der -in cert.der -out cert.pem
            но сертификаты формата PEM бесполезны в создание подписанных архивов xar.

            (Приложение OS X Keychain Access может экспортировать сертификаты как в формате DER [отображается как .cer], так и в формате PEM.)

            Просмотр сертификата X.509

            Для файла сертификата формата DER с именем cert.der следующая команда создаст его текстовое описание:

            Для файла сертификата формата PEM с именем cert.pem следующая команда создаст его текстовое описание:

            Проверка алгоритма подписи

            Чтобы проверить алгоритм подписи файла сертификата, просто создайте текстовое описание и найдите «Алгоритм подписи:» в выходных данных.

            Алгоритм подписи: значение sha1WithRSAEncryption требуется для использования инструкций по подписыванию xar, включенных в этот документ.

            О расширениях Safari

            Браузер Apple Safari поддерживает расширения браузера, начиная с Safari версии 5. Эти расширения упакованы в виде подписанных архивов xar с использованием сжатия gzip с расширением .safariextz.

            Существует большой интерес к использованию интерфейса командной строки xar для подписи файлов .safariextz.

            Это можно сделать при условии, что версия xar 1.6.1 или более поздняя, ​​а полная цепочка сертификатов (включая корневой сертификат) встроена с помощью параметров --cert-loc. Полная цепочка сертификатов может быть извлечена из файла .safariextz, который уже был подписан с помощью Safari Extension Builder с помощью предполагаемого ключа подписи (см. здесь). Также может быть полезно создать архив XAR, используя параметр --distribution или, возможно, параметр --prop-exclude ea, хотя это, вероятно, не является строго обязательным.

            Помните, что только один каталог name.safariextension должен быть добавлен в архив .safariextz (часть name не имеет значения, только суффикс .safariextension), и он должен находиться на верхнем уровне архива.

            Обратите внимание, что Safari жестко запрограммирован и требует, чтобы все расширения были подписаны сертификатом, чья цепочка сертификатов ведет к корневому сертификату Apple. Обычный сертификат подписи кода просто не будет создавать загружаемые расширения. Кроме того, для сертификатов Safari Extension Signing должны быть установлены дополнительные параметры, как описано в Заявлении Apple о практике сертификации. Так что даже не думайте пробовать это без настоящего сертификата подписи расширения Safari, выпущенного Apple.

            Вы можете получить один из этих сертификатов подписи бесплатно отсюда.

            Обратите внимание, что в OS X 10.8 (и 10.7.5) фраза «идентифицированные разработчики» кажется эвфемизмом для подписания сертификатом, выпущенным Apple, который является частью цепочки сертификатов, ведущей к корневому сертификату Apple, поэтому эти подписанные расширения будут соответствовать требованиям.

            Читайте также: