IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

SQLite n'est pas assez ouvert et a besoin d'être modernisé, se plaint son fondateur,
« SQLite est explicitement et sans équivoque "Open Source, pas Open Contribution" »

Le , par Bruno

8PARTAGES

7  0 
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.

Ainsi, son produit fait désormais partie du système d'exploitation Mac OS X d'Apple ainsi que de son application de traitement des photos Aperture. Il est également utilisé par Google, Adobe, Sun et un certain nombre d'autres grands noms. Mais il ne reçoit aucune redevance pour les millions de copies utilisées par les utilisateurs commerciaux et non commerciaux. La raison ? Il a placé SQLite dans le domaine public. Il contient la note suivante : « L'auteur décline tout droit d'auteur sur ce code source. À la place d'un avis juridique, voici une bénédiction : puissiez-vous faire le bien et non le mal. Puissiez-vous trouver le pardon pour vous-même et pardonner aux autres. Puissiez-vous partager librement, sans jamais prendre plus que vous ne donnez. »

Il s'agit d'une approche inhabituelle, même dans le monde des logiciels libres. La plupart des codes open source font l'objet d'un accord tel que la licence GNU GPL (general public licence), qui comprend des conditions garantissant que le logiciel reste libre. « J'ai examiné toutes les licences », explique Hipp, « et je me suis dit : pourquoi ne pas simplement le mettre dans le domaine public ? Pourquoi y mettre ces restrictions ? Je n'ai jamais espéré gagner un centime. Je voulais simplement le mettre à la disposition d'autres personnes pour résoudre leur problème. »

« Nous n'essayons pas de concurrencer ces autres moteurs », déclare Hipp. « Notre objectif n'est pas d'ajouter toutes sortes de cloches et de sifflets, mais plutôt de garder SQLite petit et rapide. Nous avons fixé une limite arbitraire pour que l'empreinte de la bibliothèque reste inférieure à 250 Ko. »

Toutefois, l'application peut prendre en charge des bases de données allant jusqu'à des téraoctets, y compris des éléments de la taille d'un gigaoctet. Étant écrite en C, elle peut être compilée pour fonctionner sur à peu près n'importe quel système d'exploitation. Samuel Neff est ingénieur logiciel senior chez B-Line Medical dans le Maryland, aux États-Unis. Il aime SQLite parce qu'il ne nécessite aucune configuration ni installation. Le code est librement disponible, ce qui lui permet de l'étendre facilement en le personnalisant, et ses performances sont excellentes.

Lors des tests, SQLite était quatre fois plus rapide que le serveur SQL de Microsoft. La comparaison est toutefois injuste, car SQL Server est conçu pour desservir des réseaux entiers et pour prendre en charge d'énormes bases de données avec des milliers d'utilisateurs, alors que SQLite est principalement destiné à un seul utilisateur sur une seule machine. Malgré tout, l'expérience de Neff montre les avantages de l'utilisation d'un logiciel étroitement codé qui ne fait pas plus que ce qui est nécessaire.

« J’ai commencé le 29 mai 2000. Il a un peu plus de vingt ans », déclare le Dr Richard Hipp. Il travaillait sur un projet qui utilisait un serveur de base de données, mais de temps en temps, la base de données était hors ligne. « Mon programme affichait alors un message d'erreur indiquant que la base de données ne fonctionnait pas, et c'est moi qui en étais responsable. Alors j'ai dit, ce n'est pas une application exigeante pour la base de données, pourquoi ne pas simplement parler directement au disque, et construire un moteur de base de données SQL de cette façon ? C'est ainsi que tout a commencé. »

Au cours des deux dernières années, SQLite a suscité un intérêt croissant. Apple l'a utilisé dans OS X 10.4, sorti en avril 2005, dans le cadre d'Apple Mail (pour son index de messages) et pour prendre en charge ses services Core Data. SQLite est également intégré à PHP 5.0, le langage de script open source extrêmement populaire pour les applications web. Il est présent dans Symbian 9.5, un système d'exploitation embarqué pour les smartphones.

Le petit moteur de base de données fait également partie du nouveau Google Gears, qui permet aux applications web de fonctionner hors ligne. Plus récemment, Adobe a annoncé l'inclusion de SQLite dans Adobe Integrated Runtime pour les applications de bureau basées sur son moteur multimédia Flash. « Les performances sont excellentes », déclare Ben Forsaith, responsable du développement commercial chez Adobe UK. « Il s'agit d'une source ouverte. Il est léger, vraiment petit et largement adopté. »

En réponse aux nouvelles d'aujourd'hui, un développeur sur Hacker News a commenté que « SQLite est aussi proche de l'étalon-or de la qualité logicielle que nous avons dans le monde open source. SQLite est le seul programme que j'ai jamais utilisé qui s'améliore de manière fiable à chaque version et ne régresse jamais. Se pourrait-il que ce soit précisément parce qu'ils n'utilisent pas d'"outils modernes" et n'acceptent pas les contributions extérieures ? »

C'est un cas difficile à prouver, mais le projet SQLite démontre que l'open source peut bien fonctionner avec des modèles qui sont assez différents de la collaboration communautaire qui est devenue courante.

Comme le note C, le succès de SQLite combiné à son développement relativement fermé rend difficile la réussite d'un fork. Une autre option est de packager SQLite avec des fonctionnalités supplémentaires, mais cela a des limites, auxquelles Costa fait allusion. L'équipe libSQL ajoute que « si et quand SQLite changera sa politique pour accepter des contributions, nous serons heureux de réintégrer notre travail dans le produit de base et de continuer dans cet univers ».

Source : The ChiselStrike team

Et vous ?

Que pensez-vous de SQLite ?

Pensez-vous que son fork, libSQL, pourra répondre au besoin de nouvelles fonctionnalités dans SQLite ?

Pourquoi un fork, et ne pas faire des propositions au projet SQLite lui-même ?

Selon vous, la plainte du fondateur de SQLite est-elle pertinente ?

Voir aussi :

Il y'aurait plus de mille milliards de bases de données SQLite en utilisation active, faisant du SGBD le composant logiciel le plus largement déployé et utilisé

La majorité des serveurs PostgreSQL sur Internet ne seraient pas sécurisés, selon Jonathan Mortensen, alors qu'il est souvent considéré comme un système plus fiable et plus robuste que MySQL

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de
https://www.developpez.com
Le 12/10/2022 à 6:14
Citation Envoyé par archqt Voir le message
Pourquoi il ne veut pas de contributions...mystère mais il a le droit.
Parce que les revues de code et la participation aux mailing list sont chronophages, et que les développeurs n'ont peut-être pas de temps pour cela. En plus, avec les projets open source populaires, il y a toujours un risque d'entrisme, les développeurs historiques peuvent potentiellement être mis à l'écart.

Sans compter que les développeurs de SQLite sont des chrétiens rigoristes, ils ont peut-être peur des trolls hors sujet s'ils laissent tout le monde contribuer, et on ne peut pas leur donner tort.
6  0 
Avatar de Dymmm
Membre actif https://www.developpez.com
Le 13/10/2022 à 13:00
Citation Envoyé par SQLpro Voir le message

Mais tout ceci montre bien à quel point le libre est fragile... Voici quelqu'un qui se met à hurler parce que la communauté ne l'aide pas à faire progresser son produit qui doit sans cesse s’adapter à la concurrence et la malveillance... Bref, s'il n'y a plus personne pour l'aider le produit ne sera pas pérenne, contrairement aux entreprises qui investissent et continue a effectuer de la R&D....
A =
Je ne vois pas en quoi ceci montre une fragilité du libre. Il y a plein d'exemple montrant que le libre a des maillons faible, mais pas ici. Dans ce cas de figure l'auteur du projet d'origine a une ligne directrice et il s'y tient. Il tient donc une promesse, ce qui contribut au succes et à la fiabilité de son projet.

Si je me met à hurler pars que SQL Server ne me permet pas de faire de l'édition de vidéo et que Microsoft ne fait rien en ce sens ce n'est pas une preuve de faiblesse mais plus une preuve de cohérence. non ?
Ici, quelqu'un fait un fork d'un projet pour y ajouter ce qui lui manque, c'est plutot une preuve de pérennité. Si demain Microsoft décide d’arrêter les mis à jour de SQL Server, il n'y aurai aucun moyen de le faire a leur place. Du coup, je pense que les sources fermées sont moins pérenne que le libre.
5  0 
Avatar de François DORIN
Expert éminent sénior https://www.developpez.com
Le 18/10/2022 à 8:46
J'ai mis du temps avant de bien comprendre la news, à cause de son titre. Ce n'est pas le fondateur de SQLite qui se plaint que son produit n'est pas assez ouvert et a besoin d'être modernisé, c'est celui qui a fait le fork libSQL !

Bref, le souci que je vois, c'est que l'auteur du fork, Glauber Costa, se plaint que SQLite ne prenne pas la direction que lui souhaiterait qu'elle prenne. Et alors ? Cela arrive tous les jours. Et coup de bol pour lui, SQLite est open-source, libre à lui donc de faire un fork. J'ai l'impression que ce monsieur essaie simplement de s'attirer les bonnes grâces de la communauté SQLite.

L'auteur de SQLite a défini des contraintes, qui sont maintenues encore aujourd'hui, et à raison. SQLite est utilisé partout, y compris dans l'IoT aux contraintes matérielles beaucoup plus forte que sur un smartphone ou un PC.

Quand je vois que la fonctionnalité n°1 que souhaite rajouter Glauber Costa c'est le côté distribué de la base de données, je me dis qu'il est complètement à côté de la plaque. SQLite n'a pas été conçu pour ça. Loin de là. SQLite c'est du local, 1 fichier, 1 utilisateur en écriture. Point. Glauber Costa souhaite le transforme en véritable SGBD. Pourquoi ne prend il pas MariaDB ou Postgresql, qui serait beaucoup plus adapté à son besoin ? Il serait plus facile de partir sur un de ses projets et de les transformer en monofichier que de partir de SQLite et de le transformer en un véritable SGBD.
5  0 
Avatar de Waldar
Modérateur https://www.developpez.com
Le 18/10/2022 à 16:46
Je me suis permis d'éditer le titre, car en effet je trouve la nuance plutôt très importante.

Pour ceux qui lirait ce fil dans quelques temps, jusqu'à ce message le titre de la discussion était : SQLite n'est pas assez ouvert et a besoin d'être modernisé, se plaint son fondateur.
5  0 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 11/10/2022 à 20:56
Ce fork de SQLite souhaite conserver la compatibilité avec SQLite, c'est un bon point pour moi.

C'est une bonne idée de changer le moteur pour apporter des fonctionnalités modernes. On a donc le choix d'exploiter la BDD avec l'un des 2 moteurs en fonction des usages.
Si le moteur est écrit en RUST on peut s'attendre à un moteur stable rapidement aussi et toujours aussi rapide
4  0 
Avatar de SQLpro
Rédacteur https://www.developpez.com
Le 13/10/2022 à 11:39
Citation Envoyé par Bruno  Voir le message
[B][SIZE=4]... Lors des tests, SQLite était quatre fois plus rapide que le serveur SQL de Microsoft....

Comparons ce qui est comparable...
  • SQLlite n'a aucune gestion de sécurité (GRANT REVOKE)
  • SQLlite n'a pas d'optimiseur...
  • SQLlite n'a pas de tables système de métadonnées
  • ...


En conclusion SQLlite ne doit pas vérifier à chaque appel si l'utilisateur a encore la permission d'exécuter telle ou telle commande sur telles et telles colonnes, ni même savoir si la table existe encore ou a été supprimée et dans le cas de requêtes complexes, son temps de réponse sera catastrophique....

Donc, il sera excellent si je fais juste un SELECT * FROM MaTable à condition qu'elle existe et que ma base SQLlite n'ait pas été piraté...

Mais tout ceci montre bien à quel point le libre est fragile... Voici quelqu'un qui se met à hurler parce que la communauté ne l'aide pas à faire progresser son produit qui doit sans cesse s’adapter à la concurrence et la malveillance... Bref, s'il n'y a plus personne pour l'aider le produit ne sera pas pérenne, contrairement aux entreprises qui investissent et continue a effectuer de la R&D....

A =
4  0 
Avatar de bolduc2
Futur Membre du Club https://www.developpez.com
Le 18/10/2022 à 8:17
Il y a un sérieux contresens dans la traduction du titre de l'article: ce n'est pas le fondateur de SQLite qui se plaint, mais celui du fork

L'article original:

https://devclass.com/2022/10/05/sqlite-not-open-enough-and-needs-modernization-complains-project-which-forks-it/
4  0 
Avatar de escartefigue
Modérateur https://www.developpez.com
Le 12/10/2022 à 9:11
Citation Envoyé par Bruno Voir le message
SQLite est un système de gestion de base de données relationnelle complet, renfermé dans un seul fichier.
Non : un SGBD qui ne connait ni les types date, ni les types geometry et geography, ni les types char, varchar, nchar et nvarchar, n'est certainement pas un SGBD complet.
3  0 
Avatar de
https://www.developpez.com
Le 11/10/2022 à 20:56
Un fork de SQLite qui prend en charge les bases distribuées, j'attends de voir. Surtout que partir d'un code en C pur, c'est pas le chemin le plus simple. Même si lire le code SQLite est génial, ne serait-ce que pour apprendre comment fonctionnent les différents compilateurs, tant tout y est documenté.

J'aurais au moins appris grâce à cet article que SQLite est 4 fois plus rapide que SQL Server.
2  0 
Avatar de dourouc05
Responsable Qt & Livres https://www.developpez.com
Le 12/10/2022 à 2:00
Citation Envoyé par Jeff_67 Voir le message
J'aurais au moins appris grâce à cet article que SQLite est 4 fois plus rapide que SQL Server.
Dans un cas très particulier : une seule écriture en parallèle sur la base de données. Sinon, SQLite s'effondre et, pour ainsi dire, tout autre serveur de base de données fonctionnera plus vite. J'ai donc quelques doutes pour la version distribuée, vu à quel point SQLite n'est pas prévu pour ça.
2  0