Le projet NGINX a publié une boîte à outils pour développer des modules en langage Rust

Les développeurs du projet NGINX ont présenté la boîte à outils ngx-rust, qui permet de créer des modules pour le serveur http NGINX et un proxy multiprotocole dans le langage de programmation Rust. Le code ngx-rust est distribué sous la licence Apache 2.0 et est actuellement en version bêta.

Initialement, la boîte à outils a été développée comme un projet visant à accélérer le développement d'un maillage de services compatible Istio pour la plate-forme Kubernetes fonctionnant sur NGINX. Le produit n'est jamais allé au-delà du prototype et a stagné pendant plusieurs années, mais les exemples de liaisons publiés au cours du processus de prototype ont été utilisés par la communauté dans des projets tiers pour étendre les capacités de NGINX dans Rust.

Après un certain temps, la société F5 a dû écrire un module spécialisé pour NGINX afin de protéger ses services, dans lequel elle souhaitait utiliser le langage Rust pour réduire le risque d'erreurs lors du travail avec la mémoire. Pour résoudre le problème, l'auteur de ngx-rust a été engagé, chargé de développer de nouveaux outils améliorés pour créer des modules pour NGINX dans le langage Rust.

La boîte à outils comprend deux packages de caisse :

  • nginx-sys - Générateur de liaison basé sur le code source NGINX. L'utilitaire charge le code NGINX et toutes ses dépendances associées, puis utilise bindgen pour créer des liaisons sur les fonctions d'origine (FFI, interface de fonction étrangère).
  • ngx - une couche pour accéder aux fonctions C à partir du code Rust, une API et un système de réexportation des liaisons créées à l'aide de nginx-sys.

Source: opennet.ru

Ajouter un commentaire