Les spécialistes de Mozilla ont présenté le projet WASI (WebAssembly System Interface), qui prévoit le développement d'API pour créer des applications classiques exécutées en dehors des navigateurs. Cela implique initialement la compatibilité multiplateforme et un haut niveau de sécurité pour ces applications.

Comme indiqué, elles s'exécutent dans un « bac à sable » spécial et ont accès aux fichiers, au système de fichiers, aux sockets réseau, aux temporisateurs, etc. Le programme ne peut effectuer que des actions spécifiquement autorisées.
Étant donné que le pseudocode WebAssembly est une variante indépendante de la plate-forme du langage Assembleur, l'utilisation de JIT permettra d'atteindre une haute performance du code, comparable à celle des applications natives. Actuellement, une implémentation des API POSIX de base (fichiers, sockets, etc.) est disponible, mais elle ne prend pas encore en charge les verrous et l'E/S asynchrone. À l'avenir, des modules pour la cryptographie, le travail avec la 3D, les capteurs et les multimédias sont attendus.

Il convient également de noter que le projet Fastly a présenté le compilateur Lucet pour les applications WebAssembly. Celui-ci permet d'exécuter en toute sécurité des programmes tiers sur WebAssembly à l'intérieur d'autres applications, ce qui est approprié pour les plugins. Le compilateur lui-même est écrit en Rust et prend en charge le code en C, Rust et TypeScript.
Il reste bien sûr de nombreuses questions concernant la sécurité de cette approche. L'exécution de code dans un « bac à sable » se combine de manière étrange avec l'accès aux fonctions du système principal, ce qui nécessite encore des éclaircissements. De plus, il n'est pas clair quels programmes doivent fonctionner dans ce mode et comment leur comportement sera suivi.
Source : 3dnews.ru
