Présentation d'Android Rust

La plate-forme Android prend en charge le développement de composants natifs du système d'exploitation dans Rust, un langage de programmation système moderne qui offre des garanties de sécurité de la mémoire avec des performances équivalentes à celles du C/C++. Rust utilise une combinaison de contrôles au moment de la compilation qui garantissent la durée de vie et la propriété des objets, et des contrôles à l'exécution qui garantissent des accès mémoire valides, éliminant ainsi le besoin d'un ramasse-miettes.

Rust fournit une gamme de fonctionnalités de langage moderne qui permettent aux développeurs d'être plus productifs et plus confiants dans leur code :

  • Programmation simultanée sécurisée - La facilité avec laquelle cela permet aux utilisateurs d'écrire du code efficace et sécurisé a donné naissance au slogan Fearless Concurrency de Rust.
  • Système de types expressifs - Rust aide à prévenir les bogues de programmation logique en autorisant des types très expressifs (tels que les wrappers Newtype et les variantes d'énumération avec contenu).
  • Des contrôles plus forts au moment de la compilation - Un plus grand nombre de bogues détectés au moment de la compilation augmentent la confiance des développeurs dans le fait que lorsque le code est compilé avec succès, il fonctionne comme prévu.
  • Cadre de test intégré - Rust fournit un cadre de test intégré dans lequel les tests unitaires peuvent être placés à côté de l'implémentation qu'ils testent, ce qui rend les tests unitaires plus faciles à inclure.
  • Application de la gestion des erreurs : les fonctions avec des échecs récupérables peuvent renvoyer un type de résultat , qui sera soit une variante de réussite, soit une variante d'erreur. Le compilateur demande aux appelants de rechercher et de gérer la variante d'erreur d'une énumération Result renvoyée par un appel de fonction. Cela réduit le risque de bogues résultant de pannes non gérées.
  • Initialisation - Rust exige que chaque variable soit initialisée avec un membre légal de son type avant utilisation, empêchant ainsi une initialisation involontaire à une valeur dangereuse.
  • Gestion plus sûre des entiers - Toutes les conversions de type entier sont des conversions explicites. Les développeurs ne peuvent pas lancer accidentellement un cast lors d'un appel de fonction lors de l'affectation à une variable ou lorsqu'ils tentent de faire de l'arithmétique avec d'autres types. La vérification de débordement est activée par défaut dans Android pour Rust, ce qui nécessite que les opérations de débordement soient explicites.

Pour plus d'informations, consultez la série d'articles de blog sur la prise en charge d'Android Rust :