Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[WCX] PAXZ - плагин для работы с форматами PAX, LZ4, Zstd
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
remittor



Joined: 21 Oct 2019
Posts: 19
Location: Russia

Post (Separately) Posted: Tue Nov 12, 2019 19:07    Post subject: [WCX] PAXZ - плагин для работы с форматами PAX, LZ4, Zstd Reply with quote

Плагин для работы 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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Nov 12, 2019 19:27    Post subject: Reply with quote

remittor wrote:
Все настройки плагина хранятся не в ini-файле, а в реестре (для каждого пользователя в отдельности).
Потрясающая новость для любителей портабилизации (т.е. по сути всей активной публики). Mr. Green
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
remittor



Joined: 21 Oct 2019
Posts: 19
Location: Russia

Post (Separately) Posted: Tue Nov 12, 2019 22:38    Post subject: Reply with quote

Flasher wrote:
remittor wrote:
Все настройки плагина хранятся не в ini-файле, а в реестре (для каждого пользователя в отдельности).
Потрясающая новость для любителей портабилизации (т.е. по сути всей активной публики). Mr. Green


Вот тут написал основую причину такого решения: http://forum.wincmd.ru/viewtopic.php?p=131204#131204
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Nov 12, 2019 23:46    Post subject: Reply with quote

remittor
XML Question
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Wed Nov 13, 2019 05:07    Post subject: Reply with quote

remittor
Так, как в предыдущем посте, цитаты больше не оформляйте, это считается оверквотингом. А хранение настроек плагина в реестре действительно ощутимо снизит число его потенциальных пользователей, невзирая ни на какие причины.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Nov 13, 2019 10:02    Post subject: Reply with quote

Flasher,
В данном случае XML не решит проблемы выбора места его расположения. Но если выбирать между INI и XML, я бы выбрал первый, его куда проще читать человеку, а ситуаций, где его возможностей недостаточно для хранения конфигурации, крайне мало.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Nov 13, 2019 12:43    Post subject: Reply with quote

MVV
Расположение вызвано вопросами с юникодностью. С UTF-8 в XML дела обстоят вроде как проще.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Nov 13, 2019 13:33    Post subject: Reply with quote

С юникодностью в INI тоже всё в порядке, UTF-16 отлично работает. Но проблемы с расположением могут быть, если папка для INI-файлов тотала содержит юникод.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Nov 18, 2019 15:42    Post subject: Reply with quote

Попробовал поставить плагин, не поставился. Прописал вручную. При попытке зайти в 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
View user's profile Send private message
remittor



Joined: 21 Oct 2019
Posts: 19
Location: Russia

Post (Separately) Posted: Mon Nov 18, 2019 22:39    Post subject: Reply with quote

Flasher wrote:
Попробовал поставить плагин, не поставился.

Ясно. В архив попала старая версия 32-битного плагина.
64-битная версия там рабочая.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Nov 18, 2019 22:52    Post subject: Reply with quote

remittor wrote:
64-битная версия там рабочая.
Мне от этой новости теплее не стало.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
remittor



Joined: 21 Oct 2019
Posts: 19
Location: Russia

Post (Separately) Posted: Fri Nov 22, 2019 22:17    Post subject: Версия 0.2 Reply with quote

Запостил в шапке wcx_paxz_0.2

Решил поменять имя на PAXZ, т.к. есть идея добавить поддержку Zstandard. На выходе в этом случае и будут файлы с расширением paxz (чтобы не конфликтовать с zst,zstd,tzs и т.п.).

Настройки всё же сохраняются в ini-файл. Но только в формате UTF-16.

Поддержка многоязычности есть, т.к. делал по аналогии с плагином 7zip (диалог прям передрал 1 в 1).

Есть вопрос по реализации алгоритма кэширования, который встроен в этот плагин.
Сейчас ликвидация "протухших" элементов кэша производится только при вызове OpenArchive. Т.е. если юзер долгое время не использует данный плагин, то всё это время в памяти будут хранится неактуальные данные.
Неужеели нужно делать отдельный мониторящий поток в wcx плагине?
Back to top
View user's profile Send private message
remittor



Joined: 21 Oct 2019
Posts: 19
Location: Russia

Post (Separately) Posted: Tue Nov 26, 2019 22:18    Post subject: Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 28, 2019 21:52    Post subject: Reply with quote

remittor wrote:
Вот почему мне пришла идея сделать плагин PAXZ:

1-2) Так а почему расширения TAR и PAXZ не заявлены (defaultextension=pax,lz4)?
3) Зато с Total7zip+lz4/5 в Ultra я получу меньший размер с тем же расширением, которое данный плагин, разумеется, не прочтёт.

А почему lz5 не сделали?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
remittor



Joined: 21 Oct 2019
Posts: 19
Location: Russia

Post (Separately) Posted: Fri Nov 29, 2019 12:54    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group