cURL : Let's Encrypt finance la création d'un back-end HTTP basé sur Hyper (Rust)

cURL : Let’s Encrypt finance la création d’un back-end HTTP basé sur Hyper (Rust)

cURL : Let's Encrypt finance la création d'un back-end HTTP basé sur Hyper (Rust)

Si l'on a pu lire ces derniers jours que le célèbre outil permettant d'effectuer des requêtes dans de nombreux protocoles allait être réécrit avec le langage créé par la fondation Mozilla, il n'en est rien. 

Daniel Stenberg l'a d'ailleurs clairement détaillé sur son blog. La bibliothèque de base libcurl est écrite en C et le restera. Même si le langage a ses problèmes et que des vulnérabilités sont parfois découvertes, aucune n'a jamais été critique et leur nombre se réduit.

Surtout, cette brique logicielle présente dans des millions de machines à travers le monde est connue, stable et appréciée pour cela. Un portage complet serait un travail pharaonique devant lequel même Google a finalement reculé, rappelle Stenberg.

Toutefois, la conception de cURL est flexible. Il peut être compilé avec différents back-ends, 33 pour être précis. Chacun peut être utilisé pour le support de tel ou tel protocole, avec ses avantages et inconvénients. 

L'annonce faite il y a quelques jours porte sur la création d'un nouveau back-end pour les requêtes HTTP. Il exploitera Hyper, une bibliothèque utilisée en Rust, langage considéré « memory safe » du fait de sa conception et de sa gestion de la mémoire particulières.

Ce back-end, qui supportera tant HTTP/1 que HTTP/2, viendra rejoindre quiche et Mesalink, déjà supportés et eux aussi écrits en Rust. Sa création a été financée par l'ISRG, l'organisation derrière l'autorité de certification Let's Encrypt

Stenberg indique que le travail prendra du temps. Hyper n'a pas encore d'API lui permettant de communiquer avec du code écrit en C, son développement est en cours. C'est seulement après cette étape que la conception effective du nouveau back-end pourra commencer.

Une branche dédiée a été créée sur le dépôt GitHub de cURL. Aucune date n'a pour le moment été donnée sur l'aboutissement du projet. 

Commentaires (5)


Qu’est-ce qu’on appelle un backend pour les requêtes HTTP ?



Bon en lisant la page de quiche, il s’agit ici de créer un nouveau module pour cURL qui ajouterait des fonctionnalités propres à Hyper et au langage Rust. C’est un peu comme créer un nouvelle interface pour piloter cURL. Bon.


Comme dit dans l’article, libcurl s’interface avec différents protocoles/back-ends pour les supporter. L’idée c’est d’en proposer un pour Hyper (et donc du HTTP)


Quand on voit les problèmes pour ajouter une rust-ine au couteau suisse de la requête, on se dit qu’on n’est pas prêt de voir le C déboulonné dans le noyau Linux…



ColinMaudry a dit:


Qu’est-ce qu’on appelle un backend pour les requêtes HTTP ?




Au hasard un backend pour les requêtes HTTP :D
Sachant que cURL supporte un paquet de protocole (FTP, SMTP, IMAP…) il a probablement plusieurs backend dédiés pour chacun.


Pour ceux qui se demande ce qu’est cURL,:
wikipedia le décrit comme “une interface en ligne de commande, destinée à récupérer le contenu d’une ressource accessible par un réseau informatique.”


Fermer