{"id":46648226,"url":"https://github.com/qirashi/dvpl_go","last_synced_at":"2026-03-08T05:31:53.670Z","repository":{"id":285426832,"uuid":"955101876","full_name":"qirashi/dvpl_go","owner":"qirashi","description":"Dvpl converter to Go Lang. (The fastest and most convenient dvpl converter)","archived":false,"fork":false,"pushed_at":"2026-02-19T08:49:36.000Z","size":369,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-19T11:43:48.940Z","etag":null,"topics":["dava","dvpl","go","lz4","tanksblitz","tb","wotb","wotblitz","zlib"],"latest_commit_sha":null,"homepage":"https://t.me/qirashi_squad","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qirashi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-26T05:34:04.000Z","updated_at":"2026-02-19T08:48:53.000Z","dependencies_parsed_at":"2025-08-28T21:18:54.260Z","dependency_job_id":"c09e3ea1-7357-4563-9979-c191c94f0d61","html_url":"https://github.com/qirashi/dvpl_go","commit_stats":null,"previous_names":["qirashi/dvpl_go"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/qirashi/dvpl_go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qirashi%2Fdvpl_go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qirashi%2Fdvpl_go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qirashi%2Fdvpl_go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qirashi%2Fdvpl_go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qirashi","download_url":"https://codeload.github.com/qirashi/dvpl_go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qirashi%2Fdvpl_go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30246724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dava","dvpl","go","lz4","tanksblitz","tb","wotb","wotblitz","zlib"],"created_at":"2026-03-08T05:31:53.096Z","updated_at":"2026-03-08T05:31:53.651Z","avatar_url":"https://github.com/qirashi.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\t\n[![GitHub license](https://img.shields.io/github/license/qirashi/dvpl_go?logo=apache\u0026label=License\u0026style=flat  )](https://github.com/qirashi/dvpl_go/blob/main/LICENSE  )\n![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/qirashi/dvpl_go/total?logo=github\u0026label=Downloads\u0026style=flat  )\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/qirashi/dvpl_go?style=flat\u0026label=Code%20Size  )\n\n\u003c/div\u003e\n\n# dvpl_go [RU] | [EN](README_EN.md)\n\n  \u003e [!NOTE]\n  \u003e Конвертер использует библиотеку [lz4](https://github.com/lz4/lz4) для повышения скорости и качества сжатия.  \n  \u003e Формат имеет ограничения по размеру сжимаемых данных!  \n\n## Как использовать?\n  \u003e [!TIP]  \n  \u003e [Гайд по использованию конвертера на Русском](.readme/how_to_use.md)  \n  \u003e [A guide to using the converter in English](.readme/how_to_use_en.md)  \n\n## Поддерживаемые типы сжатия\n  \u003e [!NOTE]  \n  \u003e | Тип  | Название |                 Описание                 |\n  \u003e |------|----------|------------------------------------------|\n  \u003e |  0   |   none   | Сжатие полностью отсутствует.            |\n  \u003e |  1   |   lz4hc  | Более сильное и медленное чем lz4.       |\n  \u003e |  2   |   lz4    | Менее сильное и более быстрое чем lz4hc. |\n\n## Переменные Cреды\n  В переменных среды могут храниться 2 настройки конвертера `DVPL_MAX_WORKERS` и `DVPL_COMPRESS_TYPE` для указания кол-ва параллельно работающих процессов и тип сжатия соответсвенно.\n\n- `DVPL_MAX_WORKERS` — Максимальное количество параллельных обработчиков. (В случае слишком большого кол-ва, ограничится)\n- `DVPL_COMPRESS_TYPE` — Указывает уровень сжатия от 0 до 2. (В случае не существующего типа, будет ошибка)\n\nКак задать:\n1. **Создать вручную**\n    - Нажать `Win+R`.\n    - Выполнить `SystemPropertiesAdvanced`.\n    - Открыть `Переменные среды...` и создать соответсвующие переменные.\n\n2. **Через команндную строку**\n    - `Пуск` → `cmd` → `правой кнопкой` → `Запуск от имени администратора`\n    - Вставь одну из команд:\n      *   Для одного пользователя:\n            ```cmd\n            setx DVPL_MAX_WORKERS 4\n            setx DVPL_COMPRESS_TYPE 1\n            ```\n\n      *   Для всех пользователей (с админом):\n            ```cmd\n            setx DVPL_MAX_WORKERS 4 /M\n            setx DVPL_COMPRESS_TYPE 1 /M\n            ```\n\n## CMD\n\n```cmd\nR:\\Github\\dvpl_go\\out\u003edvpl.exe -h\n\ndvpl_go 2.0.0 x64 | Copyright (c) 2026 Qirashi\n\nUsage: dvpl [options]\n[Options]:\n  -c    Compress .dvpl files.\n  -compress int\n        Compression type: 0 (none), 1 (lz4hc), 2 (lz4) | (default 1)\n  -d    Decompress .dvpl files.\n  -filter string\n        List of file patterns to include. (\"*.sc2,*.scg\")\n  -forced-compress\n        Force compression even if the result is larger than the original.\n  -i string\n        Input path. (file or directory)\n  -ignore string\n        List of file patterns to ignore. (\"*.exe,*.dll\")\n  -ignore-compress string\n        List of file patterns for which compression should be disabled. (\"*.webp\")\n  -keep-original\n        Keep original files.\n  -m int\n        Maximum number of parallel workers (12). Minimum 1, recommended 2 | (default 2)\n  -o string\n        Output path. (file or directory)\n  -skip-crc\n        CRC can be ignored when unpacking or packing.\n\nExamples:\n  Compress   : dvpl -c -i ./in_dir -o ./out_dir\n  Decompress : dvpl -d -i ./in_dir -o ./out_dir\n  Ignore     : dvpl -c -i ./in_dir -ignore \"*.exe,*.dll\"\n  Filter     : dvpl -d -i ./in_dir -o ./out_dir -filter \"*.sc2,*.scg\"\n  No compress: dvpl -c -i ./in_dir -ignore-compress \"*.webp\"\n  Compression: dvpl -c -i ./in_dir -compress 2\n```\n\n### Описание команд\n- `-c` — Сжатие в `.dvpl`.\n- `-d` — Распаковка `.dvpl`.\n- `-i` — Входная директория или файл.\n- `-o` — Выходная директория или файл.\n- `-keep-original` — Сохранять оригинальный файл при распаковке или сжатии.\n- `-compress` — Указывает уровень сжатия от 0 до 2.\n    - `0` — `none`\n    - `1` — `lz4hc`\n    - `2` — `lz4`\n- `-ignore` — Список шаблонов файлов, которые стоит игнорировать. (Файлы и расширения не будут обработаны)\n- `-ignore-compress` — Список шаблонов файлов, которые принудительно будут сжаты в 0 тип. (Например `*.webp`)\n- `-filter` — Список файлов шаблонов, которые будут обработаны. (Только файлы и расширения, которые будут обработаны, обратный от `-ignore`)\n    - Например вам нужно распаковыать в отдельную папку только `*.webp` и `*.txt`.\n    - Это будет выглядеть так: `dvpl -d -i ./in -o ./out -filter \"*.webp,*.txt\" -keep-original -m 4`\n    #### Символы подстановки для фильтров:\n    - `*` — любое количество символов (кроме `/`).\n    - `?` — один символ.\n    - `[abc]` — один из указанных символов.\n\n    #### Примеры:\n    - `*.exe` — игнорировать все `.exe` файлы.\n    - `file?.log` — игнорировать файлы вида `file1.log`, `file2.log`.\n    - `folder/*.txt` — игнорировать все `.txt` файлы в папке `folder`.\n    - `data[1-3].csv` — игнорировать файлы `data1.csv`, `data2.csv`, `data3.csv`.\n    - `image_[xyz].png` — игнорировать файлы `image_x.png`, `image_y.png`, `image_z.png`.\n\n- `-m` - Максимальное количество параллельных обработчиков (workers).\n    - По умолчанию: 2 (однопоточный режим)\n    - Оптимальное значение: 2-4 (зависит от CPU)\n    - При указании значений \u003e максимума автоматически корректируется.\n    - Максимальное кол-во зависит от ядер и потоков процессора.\n\n- `-skip-crc` - При распаковке CRC будет проигнорирован.\n\n## Сравнение скорости работы\n\n### Этот конвертер на GoLang с многопотоком (2 workers) (lz4hc)\n```\nНачало:   16:4:43.85\nКонец:    16:5:2.78\n-----------------\nВсего:    0 ч 0 мин 18.93 сек\n\nВес: 1,15 ГБ (1 244 843 076 байт)\n```\n\n### Другой конвертер на NodeJS (lz4hc)\n```\nНачало:   15:59:13.41\nКонец:    16:0:10.19\n-----------------\nВсего:    0 ч 0 мин 56.78 сек\n\nВес: 1,15 ГБ (1 243 007 962 байт)\n```\n\n### Другой конвертер на GoLang (lz4)\n```\nНачало:   16:18:37.28\nКонец:    16:18:43.51\n-----------------\nВсего:    0 ч 0 мин 6.23 сек\n\nВес: 2,81 ГБ (3 020 488 406 байт)\n```\n\n## Итоги\n  Данный конвертер является оптимальным вариантом сжатия и скорости. Он позволяет выбрать уровень сжатия, что сказывается на скорости. В режиме сжатия `lz4hc` он обгоняет своих одноклассников по скорости и не уступает в качестве. Другой конвертер на Go использовал `lz4`, что сжимает хуже, но быстрее. Этот же конвертер работает быстро и поддерживает все основные доступные методы.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqirashi%2Fdvpl_go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqirashi%2Fdvpl_go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqirashi%2Fdvpl_go/lists"}