Всем привет.
Немного шары от меня.
Несколько дней назад, решил потихоньку освоить какой-то новый ЯП. Выбор пал на Golang.
В качестве первого проекта на этом языке, решил сделать движок для автоапдейтера.
Выкладываю в шару под Apache 2.0
Вопрос: Что в архиве?
Ответ: Сурсы апдейтера и патч-билдера на языке Go
Вопрос: Это нужно компилировать?
Ответ: Да, для начала это стоит скомпилировать для нужной вам платформы и разрядности.
Вопрос: Что умеет builder и как им пользоваться?
Ответ: Полученный после компиляции файл кладете в корень папки, которую хотите превратить в патч для апдейтера. Например возьмем C:\Patch
- Кладете файл patch_builder.exe в C:\Patch\patch_builder.exe
- Запускаете через командную строку с параметрами "patch_builder.exe -threads [число потоков(по умолчанию 4)] -compression [fastest default better best]
- Апдейтер начинает работать. Он считает чексуммы, используя алгоритм xxHash и сжимает файлы, используя компрессию ZSTD.
- Полученные файлы выгружаются тут же в папку /updater_out/ сохраняя структуру папок
- После окончания упаковки, в папке /updater_out/ создается файл info.txt, с чексуммами файлов и их путями.
- Эти файлы необходимо выгрузить на веб, в директорию вашего апдейтера, доступную с внешки. Например
Вопрос: Что умеет updater и как им пользоваться?
Ответ: Полученный после компиляции файл updater необходимо положить в корень папки вашего клиента. Т.е например если вы положите файл в C:\Client\updater, то он будет по умолчанию работать с этой папкой.
- После запуска, апдейтер пытается подключится к указанному хосту и ищет там файл info.txt
- В случае, если файл найден, он скачивает его, парсит и пытается скачать и обновить файлы, исходя из полученной информации.
- Апдейтер использует количество потоков по количеству ядер, т.к я пока не сильно понял, как масштабируется нагрузка от количества горутин. Если что, конфигурируйте по своему вкусу.
- xxHash для чексуммы и ZSTD для декомпрессии.
- Поддерживается функция самообновления. Если апдейтер нашел в патче себя, но хешсумма не совпадает, он обновится и попросит перезапуск.
Вопрос: Есть GUI?
Ответ: Нет, но вы можете написать любой GUI, используя фреймворки Fyme, Gio, QT, GTK и прочие.
Из плюсов - довольно высокая скорость работы.
Пароль для архива:
Буду благодарен за фидбек.
Немного шары от меня.
Несколько дней назад, решил потихоньку освоить какой-то новый ЯП. Выбор пал на Golang.
В качестве первого проекта на этом языке, решил сделать движок для автоапдейтера.
Выкладываю в шару под Apache 2.0
Вопрос: Что в архиве?
Ответ: Сурсы апдейтера и патч-билдера на языке Go
Вопрос: Это нужно компилировать?
Ответ: Да, для начала это стоит скомпилировать для нужной вам платформы и разрядности.
Вопрос: Что умеет builder и как им пользоваться?
Ответ: Полученный после компиляции файл кладете в корень папки, которую хотите превратить в патч для апдейтера. Например возьмем C:\Patch
- Кладете файл patch_builder.exe в C:\Patch\patch_builder.exe
- Запускаете через командную строку с параметрами "patch_builder.exe -threads [число потоков(по умолчанию 4)] -compression [fastest default better best]
- Апдейтер начинает работать. Он считает чексуммы, используя алгоритм xxHash и сжимает файлы, используя компрессию ZSTD.
- Полученные файлы выгружаются тут же в папку /updater_out/ сохраняя структуру папок
- После окончания упаковки, в папке /updater_out/ создается файл info.txt, с чексуммами файлов и их путями.
- Эти файлы необходимо выгрузить на веб, в директорию вашего апдейтера, доступную с внешки. Например
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или Регистрация
Вопрос: Что умеет updater и как им пользоваться?
Ответ: Полученный после компиляции файл updater необходимо положить в корень папки вашего клиента. Т.е например если вы положите файл в C:\Client\updater, то он будет по умолчанию работать с этой папкой.
- После запуска, апдейтер пытается подключится к указанному хосту и ищет там файл info.txt
- В случае, если файл найден, он скачивает его, парсит и пытается скачать и обновить файлы, исходя из полученной информации.
- Апдейтер использует количество потоков по количеству ядер, т.к я пока не сильно понял, как масштабируется нагрузка от количества горутин. Если что, конфигурируйте по своему вкусу.
- xxHash для чексуммы и ZSTD для декомпрессии.
- Поддерживается функция самообновления. Если апдейтер нашел в патче себя, но хешсумма не совпадает, он обновится и попросит перезапуск.
Вопрос: Есть GUI?
Ответ: Нет, но вы можете написать любой GUI, используя фреймворки Fyme, Gio, QT, GTK и прочие.
Из плюсов - довольно высокая скорость работы.
Пароль для архива:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
Буду благодарен за фидбек.