Новая версия BitTorrent-клиента Transmission 4.0.0, перешедшего с Си на Си++
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
После почти трёх лет разработки опубликован релиз Transmission 4.0.0, относительно лёгкого и нетребовательного к ресурсам BitTorrent-клиента, написанного на языке Cи и поддерживающего разнообразные интерфейсы пользователя: GTK, Qt, native Mac, Web-интерфейс, daemon, CLI. Код распространяется под лицензиями GPLv2 и GPLv3.
Ключевым изменением в новой ветке стал перевод кодовой базы с языка Си (C90) на Си++. Ранее на С++ был написан только интерфейс на базе Qt. Основной причиной перехода всего проекта на C++ называется желание задействовать дополнительные возможности, предоставляемые в стандартной библиотеке C++, и наличие в С++ более продвинутых средств для проверки типов. GTK-интерфейс переведён на использование gtkmm, обвязки над GTK для языка C++.
Попутно проведён значительный рефакторинг кодовой базы, позволивший сократить размер кода на 18%, улучшить охват тестами и упростить сопровождение. Модернизирован процесс взаимодействия с сообществом, реализовано более активное реагирование на сообщения об ошибках и передачу изменений через pull-запросы. Осуществлён переход на семантическое версионирование при назначении номеров версий, подразумевающее использование нотации X.Y.Z (вместо ранее используемой X.NN), в которой X меняется при внесении изменений, нарушающих обратную совместимость, Y меняется при расширении функциональности и Z при исправлении ошибок.
Другие изменения:
- Добавлена поддержка использования торрентов в формате BitTorrent v2 и гибридных торрентов (пока только использование готовых торрентов, возможность создания торрентов на базе BitTorrent 2 появится в одном из следующих выпусков).
В BitTorrent v2, осуществлён уход от использования алгоритма SHA-1 в пользу SHA2-256, который применяется как для контроля целостности блоков данных, так и для записей в индексах (info-dictionary), что нарушает совместимость с DHT и трекерами. Для сокращения размера torrent-файлов и проверки загруженных данных на уровне блоков индексы переведены на использование хеш-дерева Меркла. Добавлена возможность привязки отдельных хэш-деревьев к каждому файлу и выравнивания файлов по частям (без добавления добавочного заполнения после каждого файла), что позволило избавиться от дублирования данных при наличии одинаковых файлов и упростило выявления разных источников для файлов. Повышена эффективность кодирования структуры каталогов в торренте и добавлены оптимизации для обработки большого числа мелких файлов.
- Web-интерфейс переписан с использованием более современных методов разработки на JavaScript и адаптирован для использования на мобильных устройствах. Код избавлен от применения библиотеки jQuery. В сжатом виде Web-интерфейс теперь занимает всего 68 КБ.
- Значительно повышена эффективность работы - тестирование запуска transmission-daemon с 25 тысячами торрентов показало снижение нагрузки на CPU на 50% и уменьшение потребление памяти на 70%, по сравнению с Transmission 3.00.
- Взаимодействие фонового процесса с GUI-фронтэндами (transmission-qt и transmission-web) переведено на RPC, работающий в табличном режиме, что позволило уменьшить размер передаваемых данных и снизить требования к пропускной способности. Для сжатия данных, передаваемых через RPC, вместо zlib задействована более оптимизированная библиотека libdeflate.
- Пользователю предоставлена возможность выставления трекеров по умолчанию, которые могут использоваться для анонсирования всех публичных торрентов.
- Обеспечен мгновенный запуск только что добавленных сидов с выполнением операций проверки по мере необходимости (без выполнения полной проверки перед запуском).
- Добавлена опция для исключения при создании новых торрентов информации, которая потенциально может использоваться для косвенной идентификации пользователя (например, дата создания и User-Agent).
- Добавлена поддержка чёрного списка для IPv6.
- Система unit-тестирования переведена на использование Google Test. Обеспечен запуск в системе непрерывной интеграции сборок на базе Clang
Выполнено fuzzing-тестирование базовой библиотеки. Реализован процесс проверки нового кода в статических анализаторах Sonarcloud, Coverity, LGTM и clang-tidy.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/transmissio...)
- OpenNews: Выпуск qBittorrent 4.5
- OpenNews: Релиз BitTorrent-клиента Deluge 2.1
- OpenNews: BitTorrent-клиент Transmission переходит с Си на Си++
- OpenNews: Выпуск libtorrent 2.0 с поддержкой протокола BitTorrent 2
- OpenNews: Новая версия BitTorrent-клиента Transmission 3.0
Похожие новости:
- Релиз BitTorrent-клиента Deluge 2.1
- Выпуск qBittorrent 4.4 с поддержкой протокола BitTorrent v2
- Релиз проприератного BitTorrent-клиента Tixati 2.86
- BitTorrent-клиент Transmission переходит с Си на Си++
- [Информационная безопасность, Софт] Новое обновление Windows 10 самостоятельно удаляет из системы uTorrent
- [Разработка на Raspberry Pi] Настройка Plex, Samba, Transmission на Raspberry pi 4 с помощью Ansible
- [Хостинг, Децентрализованные сети, Хранилища данных, Распределённые системы] Decentralized Torrent storage in DHT
- [Хостинг, Децентрализованные сети, Хранилища данных, Распределённые системы] Децентрализованное Torrent хранилище в DHT
- [Распределённые системы] Webtor.io и в чем его отличия от обычного сидбокса
- [Open source, GitHub, Копирайт] GitHub удалил репозиторий торрент-трекера NYAA.si
Теги для поиска: #_transmission, #_torrent, #_bittorrent
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:46
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
После почти трёх лет разработки опубликован релиз Transmission 4.0.0, относительно лёгкого и нетребовательного к ресурсам BitTorrent-клиента, написанного на языке Cи и поддерживающего разнообразные интерфейсы пользователя: GTK, Qt, native Mac, Web-интерфейс, daemon, CLI. Код распространяется под лицензиями GPLv2 и GPLv3. Ключевым изменением в новой ветке стал перевод кодовой базы с языка Си (C90) на Си++. Ранее на С++ был написан только интерфейс на базе Qt. Основной причиной перехода всего проекта на C++ называется желание задействовать дополнительные возможности, предоставляемые в стандартной библиотеке C++, и наличие в С++ более продвинутых средств для проверки типов. GTK-интерфейс переведён на использование gtkmm, обвязки над GTK для языка C++. Попутно проведён значительный рефакторинг кодовой базы, позволивший сократить размер кода на 18%, улучшить охват тестами и упростить сопровождение. Модернизирован процесс взаимодействия с сообществом, реализовано более активное реагирование на сообщения об ошибках и передачу изменений через pull-запросы. Осуществлён переход на семантическое версионирование при назначении номеров версий, подразумевающее использование нотации X.Y.Z (вместо ранее используемой X.NN), в которой X меняется при внесении изменений, нарушающих обратную совместимость, Y меняется при расширении функциональности и Z при исправлении ошибок. Другие изменения:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:46
Часовой пояс: UTC + 5