AWS, Google, Microsoft et Huawei comptent parmi les fondateurs de la nouvelle Rust Foundation destinée à promouvoir ce langage qui ambitionne de détrôner le langage C au cœur des systèmes d’exploitation.

Le langage Rust est un langage de développement de bas niveau, développé en open source et créé par Graydon Hoare au sein de Mozilla Research en 2010. C’est un langage dit multiparadigme mêlant programmation-objet, programmation impérative, programmation fonctionnelle, programmation procédurale et programmation évènementielle.

Sa particularité est surtout d’être un langage imaginé pour la programmation de systèmes « sûrs ». Autrement dit, il est avant tout utiliser pour la création de systèmes d’exploitation et d’applications proches du hardware, à la manière du C et du C++ mais avec une fiabilité accrue. Comme ces derniers, il se démarque par la performance du code compilé. Mais contrairement à ses illustres ancêtres, c’est un langage dit « safe » (sûr) notamment dans des contextes d’exécutions parallèles et concurrentes.

En effet, contrairement à C et C++, le langage Rust procure un traitement original et avancé des erreurs (notamment lors des phases de compilation) mais aussi une gestion sécurisée de la mémoire sans faire appel à un coûteux (en termes de temps machine) « garbage collector » comme on en peut en trouver en Java, C#, etc.
Le langage s’appuie sur de savants mécanismes de « spatial memory safety » et de « temporal memory safety » pour s’assurer que tous les accès mémoires restent bien limités aux types définis des données et que les pointeurs appelés ne continuent pas de désigner des zones mémoires désallouées.
La force de Rust est de détecter ces anomalies génératrices de bien des plantages non pas au moment de l’exécution mais au moment même de la compilation ce qui permet une détection plus en amont de bugs typiques.

Cette gestion « safe » de la mémoire est fondamentale : selon Microsoft Security Research Center, 70% des failles de sécurité connues (et portant un numéro CVE) sont justement liées au fait que les langages C et C++ utilisés pour coder les systèmes d’exploitation n’offrent aucune garantie de sécurité mémoire. Autrement dit, 70% des bugs et failles de Windows (mais aussi d’autres systèmes comme Linux ou Android) n’existeraient pas si le système avait été écrit en Rust !

Sorte de mixte entre des langages comme C++ et des langages fonctionnels comme Haskell, Rust connaît un succès croissant. L’an dernier, il est même passé en tête des langages les plus appréciés des développeurs dans le palmarès Stack Overflow. Il est notamment au cœur du projet de système d’exploitation Fuchsia de Google ou encore du micro-kernel Redox (sorte de réécriture de Minix en Rust). Il est aussi utilisé par Microsoft sur sa plateforme Azure IoT Edge et au cœur des réflexions de l’éditeur autour de la modernisation de Windows.

Cette semaine, le Rust Team de Mozilla a officiellement annoncé la formation d’une fondation « Rust Foundation » pour promouvoir le langage dans un cadre totalement ouvert et indépendant.

Et les parrains de cette fondation sont prestigieux : « le conseil d’administration de cette fondation est composé de 5 directeurs issus des 5 sociétés membres fondatrices – AWS, Huawei, Google, Microsoft, Mozilla – ainsi que 5 directeurs parmi les leaders du projet (dont 2 venant de la Core Team) » explique Ashley Williams, directeur exécutif intérimaire de la Core Team Rust. « Il s’agit d’une étape importante dans la croissance de Rust sur plusieurs axes, à commencer par l’engagement financier de grandes multinationales. Rust est désormais une technologie prête pour un usage en production. »

« Avec l’usage croissant de Rust au sein de Microsoft, nous ne pouvons plus ne demeurer qu’un utilisateur de cette technologie open source. Nous devons également y contribuer en retour » explique de son côté Nell Shamrell-Harrington, Principal Software Engineer chez Microsoft et désormais membre du board de la Rust Foundation. « Rejoindre la Fondation Rust est un moyen pour nous de soutenir financièrement le projet, d’y contribuer activement et de nous engager plus intensément auprès de la communauté Rust. Parallèlement, nous formons une équipe Rust au sein de Microsoft pour contribuer aux efforts d’ingénierie de cet écosystème. Avec pour objectif de collaborer avec la communauté Rust sur le compilateur, l’outillage de base, la documentation, et plus encore ».

« Le langage Rust est rapidement devenu essentiel à la construction d’infrastructures à grande échelle chez AWS » écrit de son côté Shane Miller d’AWS. « Nous l’utilisons pour fournir des services tels que Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), Amazon CloudFront, et plus encore. Récemment, nous avons lancé BottleRocket, un système d’exploitation Linux basé sur des conteneurs écrit en Rust.  Notre équipe Amazon EC2 utilise Rust comme langue de choix pour les nouveaux composants AWS Nitro System, y compris les applications sensibles, comme Nitro Enclaves… La Fondation Rust crée un espace neutre pour permettre à la communauté Rust d’innover ensemble. Nous sommes ravis d’avoir l’occasion de collaborer avec d’autres pour développer et améliorer l’écosystème Rust ».

« Sur la base des investissements de longue date de Google dans C/C++, les compilateurs et les toolchains, nous sommes ravis d’annoncer notre adhésion à la Fondation Rust.   Nous sommes impatients de participer davantage à la communauté Rust, en particulier de travailler avec l’ensemble de l’industrie sur des questions clés comme l’interopérabilité avec C++, la coordination des reviews de sécurité et la réduction des coûts des mises à jour… » explique de son côté Lars Bergstrom, Directeur de l’ingénierie Android chez Google. « Google utilise Rust pour certains modules d’Android comme l’implémentation Bluetooth ou Keystore 2.0, pour crosvm (alternative de QEMU) sur ChromeOS, pour le système Fuchsia ou encore le projet ICU4X ».

Avec de tels le parrains, le langage devrait désormais rapidement percer et s’imposer partout où une programmation de bas niveau, proche du hardware, et la performance sont nécessaires.