Le projet Chromium prendra en charge l'utilisation des bibliothèques Rust

Chrome

, le projet Chromium prendra en charge l'utilisation de bibliothèques C++ Rust tierces dans Chromium

Google a dévoilé news récemment que l'équipe derrière le projet Chromium travaille sur l'ajout d'une chaîne d'outils Rust de la production à votre système de construction.

Pour ceux qui ne connaissent pas encore Rust, qu'ils s'en souviennent bien car ce langage de programmation, développé par Mozilla spécifiquement pour être utilisé dans l'écriture d'un navigateur, a commencé à s'infiltrer et à être accepté dans de nombreux projets importants, l'un d'eux étant le Noyau de rouille Linux.

Cela nous permettra d'inclure le code Rust dans le binaire Chrome au cours de la prochaine année. L'objectif est de commencer petit et de définir des attentes claires pour lesquelles les bibliothèques seront prises en compte lorsqu'elles seront prêtes.

Il va donc de soi que Chromium commence enfin à déployer cette technologie également. Pour Google, l'introduction de Rust in Chromium remplira l'objectif de fournir un moyen plus simple et plus sûr de se conformer à la règle de deux, qui consiste à accélérer le développement et à améliorer la sécurité de Chrome, en plus d'améliorer la sécurité, de supprimer les erreurs de mémoire et réduire la densité d'erreurs dans le code.

Nous savons que C++ et Rust peuvent très bien fonctionner ensemble, grâce à des outils comme cxx, autocxx bindgen, cbindgen, diplomate et crubit (expérimental). Cependant, il existe également des limites. Nous pouvons nous attendre à ce que la forme de ces limitations change au fil du temps avec des outils nouveaux ou améliorés, mais les décisions et les descriptions ici sont basées sur l'état actuel de la technologie.

Décision a été prise dans le cadre d'une initiative visant à empêcher l'apparition d'erreurs de mémoire dans la base de code Chrome. Selon des statistiques fournies il y a deux ans, 70 % des problèmes de sécurité critiques et dangereux dans Chromium sont dus à des erreurs de mémoire.

L'utilisation du langage Rust, qui se concentre sur la gestion sécurisée de la mémoire et fournit une gestion automatique de la mémoire, il réduira le risque de vulnérabilités causées par des problèmes tels que l'accès à une zone de mémoire après sa libération et le débordement de la mémoire tampon.

L'objectif d'apporter Rust à Chromium est de fournir un moyen plus simple (pas d'IPC) et plus sûr (C++ moins complexe en général, pas de bogues de sécurité de la mémoire en bac à sable) pour satisfaire la règle de deux, afin d'accélérer le développement (moins de code à écrire , moins de documents de conception, moins de correctifs de sécurité) et pour améliorer la sécurité (plus de lignes de code sans bogues de sécurité en mémoire, densité de bogues de code plus faible) de Chrome. De plus, la société est convaincue que nous pouvons utiliser des bibliothèques Rust tierces pour atteindre cet objectif.

Début 2022, l'équipe Chromium avait déjà expérimenté Rust et, après quelques mois, est arrivé à la conclusion que le langage est initialement inadapté en remplacement du C++ pour les tâches complexes avec du code asynchrone qui doit fonctionner parallèlement au code existant.

Par conséquent, l'utilisation prévue de Rust in Chromium est clairement limitée au début. D'une part, l'interopérabilité n'ira que dans un sens : de C++ à Rust. En revanche, dans un premier temps, seule l'utilisation de bibliothèques tierces est autorisée. Ceux-ci fonctionnent comme des composants autonomes et sont indépendants des composants internes de Chromium. Les bibliothèques doivent avoir une API simple pour votre tâche spécifique. L'équipe Chromium examinera ensuite les bibliothèques.

Enfin, il convient de mentionner qu'à ce titre l'ajout de la prise en charge dans Chromium permettra au code Rust d'être porté dans les binaires Chrome à partir de l'année prochaine. La décision porte principalement sur la question de la sécurité : Rust offre une plus grande sécurité lors de l'écriture en mémoire que C++ et interdit les comportements potentiellement dangereux tels que la lecture de variables non écrites, l'accès au-delà des limites fixées par les tableaux, le déréférencement de pointeurs nuls ou invalides, l'utilisation d'itérateurs surchargés. .

Si vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.