SQLite est un moteur de base de données relationnelle léger accessible par le langage SQL. Contrairement aux serveurs de bases de données traditionnels, comme MySQL ou PostgreSQL, sa particularité est de ne pas reproduire le schéma habituel client-serveur, mais d'être directement intégré aux programmes. Un nouveau fork de SQLite, appelé libSQL, vise à moderniser le très populaire SGBD embarqué SQLite, son fondateur se plaignant que « SQLite est explicitement et sans équivoque ‘’Open Source, pas Open Contribution" ».SQLite est un système de gestion de base de données relationnelle complet, renfermé dans un seul fichier. SQL, ou langage d'interrogation structuré, est le langage de programmation standard de l'industrie pour le stockage et la récupération de données. Parmi les gestionnaires de bases de données SQL les plus connus, citons Oracle, DB2 d'IBM, SQL Server et Access de Microsoft, ainsi que les logiciels libres MySQL et PostgreSQL.
Glauber Costa est fondateur et PDG de ChiselStrike, dont le produit génère des applications back-end à partir de classes TypeScript. Dans ce qu'il appelle le manifeste pour libSQL, lui et son équipe soutiennent que SQLite doit être enrichi de nouvelles fonctionnalités essentielles. Il s'agit notamment de :
- prise en charge des bases de données distribuées disponibles sur plusieurs serveurs ;
- prise en charge des E/S asynchrones via la nouvelle API Linux io_uring ;
- utilisation de l'eBPF pour optimiser SQLite en permettant à certaines opérations de s'exécuter dans le noyau ;
- ajout de la prise en charge des fonctions définies par l'utilisateur dans Wasm (WebAssembly) afin de permettre l'utilisation d'autres langages, qui compilent en Wasm, à la place du C. Le projet libSQL prévoit d'utiliser Rust aux côtés de C pour mettre en œuvre ces changements.
Mais pourquoi un fork, et ne pas faire des propositions au projet SQLite lui-même ? Le problème est que le projet SQLite a un objectif restreint : être une base de données embarquée rapide, petite et fiable.
La taille ne fait pas tout pour le modeste créateur de SQLite, Richard Hipp. Dans un monde de personnes obsédées par la transformation de la plus petite idée en quelque chose de rentable, le logiciel le plus connu du Dr Richard Hipp se distingue pour deux raisons : il renonce activement à ses droits d'auteur et, à une époque où les installations de plusieurs mégaoctets sont en plein essor, il s'est imposé une limite à la taille de son produit : 250 Ko. Et il s'en tient à ces deux objectifs. « Je pense que nous avons 15 kilo-octets d'espace libre », dit-il en parlant de la marge de manœuvre laissée dans le code.
Le code est open source, mais il ne s'agit pas d'un projet public au même titre que la plupart des autres applications open source bien connues, y compris Linux lui-même. Le Dr D. Richard Hipp, dirige toujours le projet.
Il a confié en 2007 que « notre objectif n'est pas d'ajouter toutes sortes de cloches et de sifflets, mais plutôt de garder SQLite petit et rapide ». Il a ajouté : « D'autres personnes sont libres de faire une copie de SQLite et de forker l'arbre s'ils le souhaitent ... cela ne me fera pas de peine. Mais il s'est transformé en un logiciel très compliqué, et il faut des efforts soutenus pour le maintenir en bon état. »
Selon l'équipe de développement de SQLite, le SGBD est probablement l'un des cinq modules logiciels les plus déployés, toutes descriptions confondues. Étant donné que SQLite est largement utilisé dans tous les smartphones et qu'il y a plus de 4,0 milliards de smartphones en service, chacun contenant des centaines de fichiers de base de données SQLite, il est probable qu'il y ait plus d'un trillion de bases de données SQLite en service.
L'intégralité de la base de données (déclarations, tables, index et données) est en effet stockée dans un fichier indépendant de la plateforme. Grâce à son extrême légèreté, SQLite est l’un des moteurs de base de données les plus utilisés au monde. Il est utilisé dans de nombreux logiciels grand public, et est également très populaire sur les systèmes embarqués, notamment sur la plupart des smartphones modernes....
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.
