libcurl fête ses 24 ans : un retour sur le parcours
Le 7 août 2000, la première version de libcurl, version 7.1, a été publiée. Cela a marqué le début d'un voyage pour la bibliothèque, qui est devenue une pierre angulaire de la connectivité Internet à travers d'innombrables appareils et applications.
Alors que libcurl fête son 24e anniversaire aujourd'hui (7 août 2024), il est temps de réfléchir au parcours incroyable de cette bibliothèque de transfert de fichiers multi-protocole. De ses débuts modestes en 2000 à son statut actuel de pilier de la communication sur Internet, libcurl a vraiment résisté à l'épreuve du temps.
La Naissance d'un Libcurl
La création de libcurl a été en grande partie un effort solitaire de Daniel Stenberg, le fondateur et développeur principal de cURL et libcurl.
Ayant déjà été témoin du succès de l'outil en ligne de commande 'curl', qui a fait ses débuts en 1998, Stenberg a imaginé un monde où les applications pourraient intégrer de manière transparente des capacités de transfert sur Internet.
Cela l'a conduit à entreprendre un projet s'étalant sur tout l'été, refactorisant la base de code monolithique de curl en deux composants distincts : une bibliothèque et un outil en ligne de commande qui exploite les fonctionnalités de la bibliothèque.
Pourquoi créer libcurl ?
La décision de Stenberg de créer libcurl découle de sa compréhension de la puissance des bibliothèques partagées et de leur capacité à offrir des fonctionnalités aux applications. Il croyait qu'une bibliothèque pour les transferts Internet pourrait bénéficier à d'autres applications, bien que cela soit basé sur son intuition plutôt que sur des recherches formelles.
Décisions précoces et principes de conception
Dès sa création, certaines décisions fondamentales ont façonné le chemin de développement de libcurl. Le choix du C comme langage de programmation était évident pour Stenberg, qui appréciait sa simplicité et sa puissance. Le nom de la bibliothèque elle-même reflétait cette approche directe – 'libcurl', ce fut le nom choisi.
Concevoir l'API a été un défi plus nuancé. Stenberg a opté pour une approche relativement bas niveau et agnostique au protocole, visant l'extensibilité sans modifications fréquentes de l'API. Inspiré par des fonctions comme ioctl() et fcntl(), il a introduit curl_easy_setopt(), un choix de conception qui a eu à la fois des implications positives et des implications difficiles.
Adoption précoce et la connexion PHP
L'impact de libcurl a été ressenti presque immédiatement. Le même mois de ses débuts, le projet PHP a commencé à l'intégrer. Avec la sortie de PHP 4.0.2, libcurl est devenu une extension officiellement intégrée, un mouvement qui s'est avéré essentiel pour sa croissance initiale. Cette adoption par PHP a exposé libcurl à un large public d'utilisateurs, apportant des retours précieux, des tests et des rapports de bugs.
Évolution et Résilience
Au fil des années, libcurl a considérablement évolué, passant de 17 000 lignes de code lors de sa première version à plus de 171 000 lignes aujourd'hui. Fait remarquable, malgré cette croissance et l'évolution constante des protocoles Internet, une grande partie du code écrit pour l'API originale reste compatible avec les versions les plus récentes.
La résilience de la bibliothèque est évidente dans sa capacité à s'adapter à des changements majeurs de protocole, tels que l'introduction de HTTP/2 avec multiplexage et la transition de TCP à UDP avec HTTP/3.
- Debian Curl supporte maintenant HTTP3
Cette adaptabilité est largement attribuée à la prévoyance de maintenir l'API à un niveau d'abstraction suffisamment élevé.
Impact et succès
Le succès de libcurl est évident dans son adoption généralisée. Il fonctionne sur au moins 103 systèmes d'exploitation et 28 architectures CPU. Son succès peut être attribué à plusieurs facteurs :
- arrivée opportune pendant l'essor d'internet,
- une API robuste et flexible,
- et surtout, les contributions d'innombrables développeurs à travers le monde.
Avenir incertain
Malgré son succès, l'avenir reste incertain. Le paysage d'internet continue d'évoluer à un rythme rapide, avec de nouvelles technologies et de nouveaux défis apparaissant constamment. L'essor des bibliothèques HTTP natives alternatives dans divers langages de programmation constitue un défi important.
Cependant, l'héritage durable de libcurl réside dans son historique éprouvé de stabilité, sa vaste base d'utilisateurs et son engagement indéfectible à soutenir les besoins en constante évolution de la communication sur Internet. Tant que ces valeurs resteront au cœur de son fonctionnement, libcurl est bien placé pour continuer à être une partie importante de l'infrastructure d'Internet pendant de nombreuses années.
Un message de gratitude
À Daniel Stenberg et à tous les contributeurs : Merci pour vos efforts inlassables dans la maintenance et l'amélioration de libcurl. Votre travail a rendu Internet plus accessible et fonctionnel pour les développeurs et les utilisateurs.
Joyeux 24e anniversaire, libcurl ! Voici à de nombreuses autres années de transferts Internet réussis et d'innovation continue.
Ressource:
- https://daniel.haxx.se/blog/2024/08/06/libcurl-a-24-ans/
Lecture Connexe:
- Wcurl : un wrapper Curl convivial pour des téléchargements de fichiers faciles
- Comment installer Curl avec le backend GnuTLS sur Debian
- Curl 8.9.0 publié : nouvelles fonctionnalités, corrections de bugs et comment l’installer
