Rappelons que GNU est un système d'exploitation libre. Il est constitué de paquets publiés par le projet GNU ainsi que de logiciels libres publiés par des tiers. Rust est un langage de programmation compilé multiparadigme, conçu par Graydon Hore alors employé chez Mozilla Research, avec la contribution du créateur de JavaScript Brendan Eich. Utilisé par plusieurs grandes entreprises et par de nombreux développeurs dans le monde, Rust est devenu le langage de base pour certaines des fonctionnalités fondamentales du navigateur Firefox et de son moteur Gecko, ainsi que pour le moteur Servo de Mozilla.
« Mozilla a incubé Rust pour mieux développer Firefox et contribuer à un meilleur Internet », avait écrit Bobby Holley, membre du conseil d'administration de la fondation Mozilla et Rust, dans une déclaration. « Avec cette nouvelle fondation, Rust aura la possibilité de se développer, tout en continuant à amplifier certaines des valeurs fondamentales que Mozilla partage avec la communauté Rust ».
Le mois dernier, Microsoft, Google, AWS, Huawei et Mozilla se sont associées pour créer la Fondation Rust, une organisation à but non lucratif chargée de gérer le langage de programmation. L'annonce avait été faite par Ashley Williams, Directeur exécutif par intérim de la fondation, le 8 février sur le site Internet de l'organisation. « Aujourd'hui, au nom de l'équipe de Rust, je suis heureux d'annoncer la création de la Fondation Rust, une nouvelle organisation indépendante à but non lucratif chargée de gérer le langage de programmation et l'écosystème Rust, en mettant l'accent sur le soutien de l'ensemble des responsables qui régissent et développent le projet ».
Pour parvenir à écrire des utilitaires de systèmes avec Rust, les utilisateurs doivent respecter un certain nombre de prérequis :
- Rust (cargo, rustc) ;
- Sphinx : nécessaire pour la documentation ;
- Gzip : nécessaire pour l'installation de la documentation ;
- GNU Make : nécessaire pour construire la documentation.
uutils suit les canaux de publication de Rust et est testé sur les versions stable, bêta et nightly. Sous Windows et Redox, seule la version nightly est testée actuellement. Il existe actuellement deux méthodes pour construire uutils : GNU Make et Cargo. Cependant, bien qu'il y ait deux méthodes, sous Unix , les deux systèmes sont requis pour la construction et seul Cargo est requis sous Windows. Pour les deux méthodes, le dépôt doit tout d’abord être récupéré grâce aux commandes :
$ git clone "https://github.com/uutils/coreutils"
$ cd coreutils
La méthode Cargo
Cargo est le système de construction et le gestionnaire de paquets de Rust. La plupart des programmeurs Rust utilisent cet outil pour gérer leurs projets Rust car, Cargo prend en charge de nombreuses tâches comme la construction du code, le téléchargement des dépendances dont le programme a besoin et la construction de ces bibliothèques. Construire uutils en utilisant Cargo est facile car, le processus est le même que pour tout autre programme Rust. Pour conserver les informations de débogage, la compilation peut être effectuée sans le paramètre –release :
$ cargo build –release
Étant donné que la commande ci-dessus tente de construire des utilitaires qui ne fonctionnent pour l'instant que sur des plateformes de type Unix, voici, ci-dessous, la commande pour Windows :
$ cargo build --release --no-default-features --features windows
Si vous ne voulez pas construire tous les utilitaires disponibles sur votre plateforme dans le binaire multicall (le binaire Busybox-esque), vous pouvez aussi spécifier ceux que vous voulez construire manuellement. Par exemple :
$ cargo build --features "base32 cat echo rm" --no-default-features
Si vous ne voulez même pas construire le binaire multicall et préférez simplement construire les utilitaires en tant que binaires individuels, c'est également possible. Par exemple :
$ cargo build -p uu_base32 -p uu_cat -p uu_echo -p uu_rm
Alors que pour certains programmeurs, Cargo n'apporte pas de plus-value par rapport à l'utilisation de rustc (un compilateur pour le langage de programmation Rust), la plupart des programmeurs Rust n'invoquent pas rustc directement, mais le font à travers Cargo.
La méthode GNU Make
GNU Make est un outil qui contrôle la génération des exécutables et des autres fichiers non-sources d'un programme à partir des fichiers sources du programme. Make obtient ses connaissances sur la façon de construire votre programme à partir d'un fichier appelé makefile, qui répertorie chacun des fichiers non sources et la façon de le calculer à partir d'autres fichiers. La construction des utilitaires systèmes à l'aide de make est également un processus simple.
$ make
Pour construire tous les services disponibles, à l'exception de quelques-uns, voici, la commande à utiliser :
$ make SKIP_UTILS='UTILITY_1 UTILITY_2'
Pour ne construire que quelques-uns des services disponibles, la commande suivante doit être utilisée :
$ make UTILS='UTILITY_1 UTILITY_2'
Les « GNU Core Utilities » réimplémentés en Rust sont sous licence GPL 3.0 ou ultérieure. Des centaines d'entreprises dans le monde entier utilisent Rust en production pour des solutions multiplateformes et économes en ressources. Des logiciels connus et appréciés, comme Firefox, Dropbox, et Cloudflare, utilisent ce langage. De la startup à la multinationale, du système embarqué au service web à haute disponibilité, Rust est une excellente solution.
« Mon meilleur compliment envers Rust est qu'il est ennuyeux, et c'est un fantastique compliment », déclare Chris Dickinson, Ingénieur chez npm Inc. Pour Antonio Verardi, Ingénieur infrastructure chez Yelp, les développeurs disposent de tous les outils pour réussir à écrire du code en Rust. La documentation, l’outillage et la communauté sont tous simplement fantastiques.
Source : GNU
Et vous ?
Avez-vous une expérience avec les utilitaires de base GNU ?
Quel est votre avis sur ce dépôt réimplémenté en Rust ?
Voir aussi :
Microsoft, Google, AWS, Huawei et Mozilla s'associent pour créer la Fondation Rust, une organisation à but non lucratif chargée de gérer le langage de programmation
Microsoft, Google, AWS, Huawei et Mozilla s'associent pour créer la Fondation Rust, une organisation à but non lucratif chargée de gérer le langage de programmation
Microsoft annonce Rust/WinRT, une projection du langage Rust pour les API Windows Runtime, implémentée comme une bibliothèque basée sur des fichiers d'en-tête
GNU Octave 6.1.0, le langage de haut niveau pour les calculs numériques, est disponible, avec plusieurs améliorations et prévoit la suppression du support de Qt4 dans la version 7