IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft publie la version 0.9 de Rust for Windows, avec un support complet de l'API Windows
Et une prise en charge plus naturelle et idiomatique des interfaces COM

Le , par Bill Fassinou

50PARTAGES

12  0 
Microsoft publie la version 0.9 de Rust for Windows, avec un support complet de l'API Windows
et une prise en charge plus naturelle et idiomatique des interfaces COM

L'initiative Rust for Windows de Microsoft suit son cours et l'entreprise a publié la semaine dernière une nouvelle version preview, la version 0.9. Elle inclut le support complet de la consommation, permettant aux développeurs d'appeler toutes les API Windows (passées, présentes et futures) en utilisant la projection du langage Rust, ainsi que plusieurs autres mises à jour. Microsoft annonce que les développeurs Rust ont accès à l'ensemble de la surface de l'API Windows d'une manière intuitive, ce qui leur permet de profiter facilement de la puissance et de l'étendue du développement Windows.

Comme avec Linux, Rust s'invite progressivement sur Windows

Microsoft s'intéresse à Rust depuis un certain temps déjà, en étudiant son utilisation en tant qu'alternative sûre en matière de type et de mémoire à C et C++ dans les tâches de programmation de systèmes. L'activité de Microsoft reposant de plus en plus sur les services en nuage (avec Azure), des outils tels que Rust sont essentiels à la création de ces services, en augmentant à la fois la fiabilité et la sécurité. Les outils de programmation système trouvent leurs racines dans le développement de systèmes d'exploitation, où il faut qu'il y ait très peu de distance entre le code et le matériel.



Il faut également que la surcharge associée aux runtimes et au garbage collection ajoute une latence indésirable. Ces caractéristiques ne concernent pas uniquement les systèmes d'exploitation ; elles sont essentielles à la création de toute application fiable où vous souhaitez que le code s'exécute en toute sécurité sans fuite de mémoire et où il est difficile pour un attaquant de sortir de la section de la mémoire système réservée à votre code. En développant en Rust, vous rendez votre code plus sûr. Il s'agit d'une première ligne de défense, intégrée au langage et aux outils utilisés pour construire votre code.

Que vous construisiez des pilotes ou des logiciels bancaires, l'important est que votre code soit fiable et que vous puissiez gérer les risques. Ainsi, là où vous auriez pu utiliser JavaScript, vous pouvez utiliser Rust qui tourne dans WebAssembly, et là où vous auriez utilisé C ou C++, vous pouvez utiliser les versions Windows ou Linux. La firme de Redmond explique qu'en utilisant Rust for Windows pour gérer les appels d'API, votre code sera plus sûr et prêt pour les changements futurs dans les API Windows avec juste une reconstruction et une recompilation lorsque les API nouvelles et mises à jour sont déployées.

Avec cette dernière version, l'entreprise a ajouté du nouveau contenu à Microsoft Docs sur le développement avec Rust sur Windows. Il y a aussi une nouvelle vidéo de démarrage pour ceux qui veulent s'y plonger. « Nous avons fait de grands progrès depuis l'annonce de l'aperçu public de Rust/WinRT l'année dernière, avec des améliorations et des investissements continus dans le projet », a déclaré l'entreprise dans le billet de blogue annonçant la version 0.9 de Rust for Windows. Voici quelques-uns des changements et mises à jour marquants de cette version :

  • ajout de la prise en charge des API Win32 et COM, unifiant les API Windows disponibles pour la consommation via windows crate. L'ajout de ces API est rendu possible par le projet win32metadata. Avec cette couverture accrue et l'unification des API Windows, Microsoft a changé le nom du projet de "Rust/WinRT" à "Rust for Windows" ;
  • ajout de plusieurs exemples au repo Rust for Windows, démontrant comment appeler un large éventail d'API Windows, y compris les API Win32, COM et WinRT ;
  • windows crate est publié sur crates.io et est maintenant sous double licence MIT ou Apache ;
  • windows crate utilise maintenant des liaisons générées plutôt que des liaisons écrites à la main en interne ;
  • windows crate se construit maintenant sous Linux ;
  • de nombreuses améliorations et corrections pour les API Win32, comme le support des types de tableaux, une variété de types de chaînes de caractères, et des métadonnées mises à jour ;
  • prise en charge plus naturelle et idiomatique des interfaces COM, par exemple avec des valeurs de retour, et prise en charge d'API supplémentaires impliquant des choses comme les unions de style C et les types imbriqués ;
  • amélioration des temps de construction et de la gestion des erreurs ;
  • le cas original de l'API est maintenant préservé, ce qui affectera le code existant utilisant windows crate ;
  • transformation des fonctions de type QueryInterface en fonctions génériques, ce qui rend plus sûr et plus pratique l'appel de nombreuses fonctions liées à COM.

Comment Microsoft construit le projet Rust for Windows

L'engagement de Microsoft envers Rust se manifeste par sa position de membre fondateur de la Fondation Rust et par le nombre de développeurs du langage et des outils qui ont rejoint l'entreprise ces derniers mois. Microsoft a maintenant annoncé son propre ensemble d'outils pour construire et développer du code Windows à l'aide de Rust, des outils basés sur les mêmes caractéristiques de Windows qui lui ont permis de livrer ses projections d'API C++/WinRT. En effet, l'un des outils les plus importants pour les développeurs Windows est la prise en charge de la projection linguistique.

Il s'agit d'une technique qui permet aux outils de développement de générer des API spécifiques à un langage à partir des métadonnées que Windows possède pour ses SDK. Grâce à la prise en charge de la projection linguistique, Microsoft n'a pas besoin d'écrire des API pour chaque langage pris en charge, ce qui ajoute à la complexité des SDK Windows, qui ne cessent de croître, et rend plus difficile la synchronisation de tous les langages pris en charge avec Windows. Cette technique garantit que tout ce dont Rust a besoin pour bénéficier de la prise en charge de Windows est une projection de langage appropriée.

Les API sont ensuite générées automatiquement en fonction des besoins. Microsoft n'a pas besoin de fournir des SDK pour les langages pris en charge, et tout nouveau langage a besoin de sa propre projection de langage pour obtenir le support de Windows. Il s'agit d'une tâche de développement beaucoup moins complexe, et lorsque de nouvelles API Windows sont publiées (par exemple, dans le cadre du projet Reunion), l'équipe chargée des API n'a besoin que d'une définition des métadonnées. Au cœur de Rust for Windows se trouve une crate...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de plegat
Expert éminent https://www.developpez.com
Le 11/05/2021 à 15:05
Et juste pour la petite touche humoristique, on notera la remarque suivante dans l'exemple du lien source:


Note that any Win32 functions and COM interface methods should be marked unsafe.
(à prendre au second degré bien évidemment)
3  0