Accueil Astuces et Informations Transmission 4.0.0 arrive basé sur C++, BitTorrent v2 et plus

Transmission 4.0.0 arrive basé sur C++, BitTorrent v2 et plus

6
2
Transmission

Transmission est un client P2P gratuit, open source et léger pour le réseau BitTorrent.

Après presque trois ans de développement a annoncé la sortie de la nouvelle version de Transmission 4.0.0version dans laquelle une importante refactorisation de la base de code a été effectuée, ce qui a permis de réduire la taille du code de 18 %, d’améliorer la couverture des tests et de simplifier la maintenance.

Pour ceux qui découvrent Transmission, sachez qu’il s’agit d’un client BitTorrent relativement léger et peu exigeant écrit en C et compatible avec une variété d’interfaces utilisateur : GTK, Qt, Mac natif, interface Web, démon, CLI.

Principales nouveautés de Transmission 4.0.0

Il le changement clé dans la nouvelle branche était la traduction de la base de code de C (C90) en C++. Auparavant, seule l’interface basée sur Qt était écrite en C++. La raison principale porter l’ensemble du projet en C++ est le désir de tirer parti des fonctions supplémentaires fournies dans la bibliothèque standard C++ et la disponibilité d’une vérification de type plus avancée en C++. L’interface GTK a été déplacée pour utiliser gtkmm, un wrapper GTK pour le langage C++.

En ce qui concerne les améliorations, il est souligné que, ajout de la prise en charge de l’utilisation de torrents au format BitTorrent v2 et les torrents hybrides (uniquement le torrent prêt à l’emploi pour l’instant, la possibilité de créer des torrents basés sur BitTorrent 2 apparaîtra dans l’une des prochaines versions). Dans BitTorrent v2, l’utilisation de l’algorithme SHA-1 a été déplacée au profit de SHA2-256, qui est utilisé à la fois pour le contrôle d’intégrité des blocs de données et pour les entrées dans les index (info-dictionnaire), ce qui rompt la compatibilité avec DHT et traceurs.

L’interface Web a été réécrite en utilisant des méthodes de développement JavaScript plus modernes et a été adapté pour une utilisation sur les appareils mobiles. Le code est enregistré à partir de la bibliothèque jQuery, et l’interface Web compressée ne fait plus que 68 Ko.

Il les performances ont été considérablement améliorées– Le test du lancement du démon de transmission avec des torrents de 25 000 a montré une diminution de 50 % de la charge du processeur et une diminution de 70 % de la consommation de mémoire par rapport à Transmission 3.00.

L’interaction du processus d’arrière-plan avec les interfaces GUI (transmission-qt et Transmission-web) a été remplacée par RPC fonctionnant en mode table, réduisant la taille des données transmises et réduisant les besoins en bande passante. Pour compresser les données transmises via RPC, la bibliothèque libdeflate plus optimisée est utilisée à la place de zlib.

Parmi les autres changements qui se démarquent:

  • L’utilisateur a la possibilité de définir des trackers par défaut qui peuvent être utilisés pour annoncer tous les torrents publics.
  • Les graines nouvellement ajoutées sont publiées immédiatement, avec des opérations de validation effectuées au besoin (sans effectuer de vérification complète avant le lancement).
  • Ajout d’une option pour exclure lors de la création de nouvelles informations de torrents qui pourraient être utilisées pour identifier indirectement un utilisateur (par exemple, date de création et User-Agent).
  • Ajout de la prise en charge de la liste noire pour IPv6.
  • Le système de test unitaire a été porté pour utiliser Google Test.
  • Assurer la publication des assemblages basés sur Clang dans le système d’intégration continue.
  • La bibliothèque de base était le test fuzz.
  • Un nouveau processus de vérification de code a été implémenté dans les analyseurs statiques Sonarcloud, Coverity, LGTM et clang-tidy.

Finalement Si vous êtes intéressé à en savoir plus à ce sujetvous pouvez vérifier les détails dans le lien suivant.

Comment installer Transmission sur Linux ?

Pour ceux qui utilisent Debian, Ubuntu, Linux Mint ou toute distribution dérivée de ceux-ci, installez l’application avec :

sudo add-apt-repository ppa:transmissionbt/ppa -y
sudo apt install transmission

Si elles sont utilisateurs de Fedora ou de distributions basées sur celui-ci, Vous pouvez installer l’application avec les éléments suivants commande:

sudo yum install transmission

tandis que pour ceux qui les utilisateurs de Mandriva Linux doivent installer avec cette commande :

sudo urpmi transmission

Pour le cas de ceux qui sont Utilisateurs d’openSUSE, vous devez saisir ce qui suit dans le terminal :

sudo zypper install transmission

Enfin, dans le cas de ceux qui sont utilisateurs de Arch Linux et les distributions qui en sont dérivées peuvent être installés avec cette commande :

sudo pacman -S transmission

De la même manière La transmission peut être compilée dans le système à partir de son code source, suivez simplement les étapes ci-dessous pour le faire.

Leur code source est hébergé sur GitHub, ils doivent donc bénéficier du support git pour pouvoir cloner le référentiel.

Nous allons ouvrir un terminal et y taper ce qui suit.

Prenons d’abord le code source avec :

git clone https://github.com/transmission/transmission Transmission

Nous entrons dans le répertoire:

cd Transmission

Et on lance la compilation avec les commandes suivantes qu’il faut taper une par une :

git submodule update --init
mkdir build
cd build
cmake ..
make
sudo make install