- Limbo est un projet expérimental qui réimplémente SQLite en Rust afin d’offrir la sûreté mémoire
- Ils apprécient la nature embarquée de SQLite, mais voulaient un modèle de développement plus ouvert, ce qui a conduit au lancement du projet libSQL
- Pourquoi avoir forké SQLite : cela permet d’intégrer plus facilement de nouvelles fonctionnalités tout en conservant la compatibilité avec le code existant
- Inconvénient : la suite de tests de SQLite est propriétaire et écrite en C, ce qui complique l’évolution du code
- Nouvelle approche
- L’ajout de fonctions de recherche vectorielle leur a fait toucher les limites de SQLite
- Réécrire SQLite depuis zéro pour préserver la compatibilité tout en explorant la possibilité d’ajouter des fonctionnalités de manière plus ambitieuse
- Prochaines étapes
- Faire de Limbo un projet officiel de Turso
- Objectif : construire une nouvelle architecture offrant la sûreté mémoire tout en conservant le même niveau de fiabilité que SQLite
- Remettre en jeu la fiabilité de SQLite
- Obtenir un haut niveau de fiabilité grâce à des tests de simulation déterministe (DST)
- Utilisation d’un framework DST au niveau système en collaboration avec Antithesis
- État actuel
- E/S entièrement asynchrones : Limbo adopte une conception totalement asynchrone, ce qui résout les problèmes de l’interface synchrone de SQLite
- Conçu pour WASM : une architecture pensée pour une utilisation dans des environnements WASM
- Performances : des performances équivalentes ou supérieures à celles de SQLite sur de nombreuses charges de travail
- Simplicité : une meilleure expérience utilisateur grâce à la suppression de fonctionnalités moins importantes dans les environnements modernes
- Informations supplémentaires
- Limbo est disponible sur GitHub sous licence MIT
- Invitation à toutes les personnes intéressées par la création de bases de données embarquées visant à faire franchir une nouvelle étape à la promesse de SQLite
4 commentaires
C’est amusant de voir un projet auquel je contribuais apparaître sur Hacker News haha
Avis Hacker News
SQLite semble être un projet qui n’a pas besoin d’être réécrit, en raison de la qualité de son code et de la rigueur de ses tests
Le débat selon lequel SQLite ne serait pas « ouvert aux contributions » néglige le fait qu’accepter des contributions ne signifie pas toujours les intégrer
Certains étaient négatifs lors de l’annonce initiale du fork de SQLite3 vers LibSQL
Pour des performances maximales, il faut choisir le mode WAL et désactiver les verrous consultatifs POSIX
wal2figure dans le radar du projetCertains disent avoir appris pour la première fois que la suite de tests de SQLite est propriétaire
Certains n’adhèrent pas à la logique de la section sur l’
async IOCertains estiment qu’il s’agit d’un projet à un stade précoce
En compilant avec Fil-C, on peut obtenir un SQLite à mémoire sûre
SQLite se compose d’environ 156�000 lignes de code et 92�000 lignes de code de test
On suppose que la certification DO-178B pour la variante Rust n’est pas envisagée
Le nom « Limbo » est aussi utilisé pour le langage post-C/UNIX de l’OS Inferno d’AT&T
SQLite semble être un projet qui n’a pas besoin d’être réécrit grâce à la qualité de son code et à la rigueur de ses tests -> cette appréciation de SQLite est vraiment enviable et impressionnante.
Il suit le processus DO-178B et aurait atteint 100 % de couverture de code MC/DC.
L’histoire méconnue de SQLite