View previous topic :: View next topic |
Author |
Message |
remittor
Joined: 21 Oct 2019 Posts: 19 Location: Russia
|
(Separately) Posted: Tue Nov 12, 2019 19:07 Post subject: [WCX] PAXZ - плагин для работы с форматами PAX, LZ4, Zstd |
|
|
Плагин для работы c архивами PAX, LZ4, Zstd
Очень давно автор TC обещал добавить поддержку PAX-формата. Но в итоге он добавил только поддержку хаков от GnuTAR (длинные имена и огромные размеры файлов).
Возможности плагина:
- Создание, модификация и чтение PAX-архивов (стандартизированный аналог TAR).
- Распаковка непрерывных архивов LZ4 и Zstd.
- Прозрачная работа с LZ4 и Zstd архивами, содержащими внутри себя PAX-архивы.
Особенности:
- Файлы с расширением paxz полностью эквивалентны файлам pax.zst
- Поддержка x64 и Unicode.
- При упаковке в архив сохраняются все атрибуты файлов и директорий.
- Гарантирована возможность распаковки создаваемых архивов при помощи мультиплатформенных утилит lz4/zstd, pax/gnutar, openssl.
- Обновление progressbar не чаще 0.5 секунд (для увеличения скорости).
- При распаковке для создаваемых директорий выставляются атрибуты и время создания, которые указанны в архиве.
- Минимально поддерживаемая система WinXP SP2.
- Рекомендуемая версия TC 7.55 или новее.
- Поддержка длинных имён файлов при упаковке и распаковке (до 1023 символов).
Основная особенность:
Реализован собственный кэш для открываемых архивов. Эта уникальная особенность избавляет от повторного сканирования всего архива при повторном открытии/редактировании. Кэш сбрасывается при изменении размера или времени последней модификации (так же делает и TC со своим кэшем).
Скачать: wcx_paxz_v0.4.zip
TODO:
- Добавить диалог с настройками (сейчас степень сжатия всегда 4).
- Выложить исходники на github.
- Добавить поддержку Zstandard (PAXZ-файлы).
- Добавить возможность удаления и добавления файлов.
- Добавить шифрование ChaCha20.
Last edited by remittor on Tue Dec 10, 2019 14:31; edited 11 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 12, 2019 19:27 Post subject: |
|
|
remittor wrote: | Все настройки плагина хранятся не в ini-файле, а в реестре (для каждого пользователя в отдельности). | Потрясающая новость для любителей портабилизации (т.е. по сути всей активной публики). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
remittor
Joined: 21 Oct 2019 Posts: 19 Location: Russia
|
(Separately) Posted: Tue Nov 12, 2019 22:38 Post subject: |
|
|
Flasher wrote: | remittor wrote: | Все настройки плагина хранятся не в ini-файле, а в реестре (для каждого пользователя в отдельности). | Потрясающая новость для любителей портабилизации (т.е. по сути всей активной публики). |
Вот тут написал основую причину такого решения: http://forum.wincmd.ru/viewtopic.php?p=131204#131204 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 12, 2019 23:46 Post subject: |
|
|
remittor
XML _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Wed Nov 13, 2019 05:07 Post subject: |
|
|
remittor
Так, как в предыдущем посте, цитаты больше не оформляйте, это считается оверквотингом. А хранение настроек плагина в реестре действительно ощутимо снизит число его потенциальных пользователей, невзирая ни на какие причины. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Wed Nov 13, 2019 10:02 Post subject: |
|
|
Flasher,
В данном случае XML не решит проблемы выбора места его расположения. Но если выбирать между INI и XML, я бы выбрал первый, его куда проще читать человеку, а ситуаций, где его возможностей недостаточно для хранения конфигурации, крайне мало. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Nov 13, 2019 12:43 Post subject: |
|
|
MVV
Расположение вызвано вопросами с юникодностью. С UTF-8 в XML дела обстоят вроде как проще. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Nov 18, 2019 15:42 Post subject: |
|
|
Попробовал поставить плагин, не поставился. Прописал вручную. При попытке зайти в pax/lz4 пишет не "Не удалось загрузить %COMMANDER_PATH%\Plugins\wcx\lz4\lz4.wcx". Снёс, вернулся на Total7zip c 7z.dll и lz4/lz5/lizard/lzip/zstandart/brotli/zstd-модулями, который всё открывает и пакует. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
remittor
Joined: 21 Oct 2019 Posts: 19 Location: Russia
|
(Separately) Posted: Mon Nov 18, 2019 22:39 Post subject: |
|
|
Flasher wrote: | Попробовал поставить плагин, не поставился. |
Ясно. В архив попала старая версия 32-битного плагина.
64-битная версия там рабочая. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Nov 18, 2019 22:52 Post subject: |
|
|
remittor wrote: | 64-битная версия там рабочая. | Мне от этой новости теплее не стало. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
remittor
Joined: 21 Oct 2019 Posts: 19 Location: Russia
|
(Separately) Posted: Fri Nov 22, 2019 22:17 Post subject: Версия 0.2 |
|
|
Запостил в шапке wcx_paxz_0.2
Решил поменять имя на PAXZ, т.к. есть идея добавить поддержку Zstandard. На выходе в этом случае и будут файлы с расширением paxz (чтобы не конфликтовать с zst,zstd,tzs и т.п.).
Настройки всё же сохраняются в ini-файл. Но только в формате UTF-16.
Поддержка многоязычности есть, т.к. делал по аналогии с плагином 7zip (диалог прям передрал 1 в 1).
Есть вопрос по реализации алгоритма кэширования, который встроен в этот плагин.
Сейчас ликвидация "протухших" элементов кэша производится только при вызове OpenArchive. Т.е. если юзер долгое время не использует данный плагин, то всё это время в памяти будут хранится неактуальные данные.
Неужеели нужно делать отдельный мониторящий поток в wcx плагине? |
|
Back to top |
|
|
remittor
Joined: 21 Oct 2019 Posts: 19 Location: Russia
|
(Separately) Posted: Tue Nov 26, 2019 22:18 Post subject: |
|
|
Flasher wrote: | ... вернулся на Total7zip c 7z.dll и lz4/lz5/lizard/lzip/zstandart/brotli/zstd-модулями... |
Вот почему мне пришла идея сделать плагин PAXZ:
1) TotalCmd и 7zip поддерживают только старый формат GnuTAR, который не может содержать атрибуты виндовых файлов (в том числе и дату создания файла).
2) Ни TotalCmd, ни 7zip не могут работать прозрачно с TAR-архивами, которые упакованы каким либо пакером.
3) lz4 и zstd не способны хранить информацию о файлах, т.к. являются только алгоритмами сжатия.
Вот и захотелось побороть все эти ограничения и при этом оставить совместимость с уже существующими утилитами (pax, gnutar, lz4, zstd). |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 28, 2019 21:52 Post subject: |
|
|
remittor wrote: | Вот почему мне пришла идея сделать плагин PAXZ: |
1-2) Так а почему расширения TAR и PAXZ не заявлены (defaultextension=pax,lz4)?
3) Зато с Total7zip+lz4/5 в Ultra я получу меньший размер с тем же расширением, которое данный плагин, разумеется, не прочтёт.
А почему lz5 не сделали? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
remittor
Joined: 21 Oct 2019 Posts: 19 Location: Russia
|
(Separately) Posted: Fri Nov 29, 2019 12:54 Post subject: |
|
|
Flasher wrote: | 1-2) Так а почему расширения TAR и PAXZ не заявлены (defaultextension=pax,lz4)? |
TAR не нужен в этом плагине, т.к. поддержка оного есть в TotalCmd. Да и нет единого формата TAR. Сейчас под TAR понимают кучу костылей от GnuTAR. Но и эти костыли не позволяют хранить всю инфу о файловых атрибутах.
PAXZ будет заявлен после добавления поддержки Zstd (сейчас этим и занят).
Flasher wrote: | 3) Зато с Total7zip+lz4/5 в Ultra я получу меньший размер с тем же расширением, которое данный плагин, разумеется, не прочтёт. |
Странное заявление. Просто вы в контейнере 7z используете не LZMA, а LZ4. Плагин PAXZ не способен работать с контейнером 7zip.
Утилита 7zip-zstd позволяет только один файл упаковать в LZ4. При этом о сохранении имени файла и его атрибутов можно забыть. И этот файл может прочитать плагин PAXZ.
Flasher wrote: | А почему lz5 не сделали? |
Выбрал алгоритмы, которые сейчас "всех рвут" в бенчмарках. Да и автор этих алгоритмов один и тот же человек. Да и с LZ4 я знаком давно (помогал автору c небольшой доработкой lz4hc). |
|
Back to top |
|
|
|