À propos du projet

RxDB (Reactive Database) est une base de données NoSQL locale et réactive pour les applications JavaScript. Elle est réactive : en plus d’interroger l’état actuel, les applications peuvent s’abonner aux changements dans un résultat de requête ou même un seul champ d’un document, ce que le projet présente comme utile pour les applications en temps réel et pilotées par l’interface utilisateur. La base de données est construite autour d’une interface de stockage, de sorte que le moteur de stockage sous-jacent peut être échangé. Les options de stockage documentées incluent LocalStorage, IndexedDB, OPFS, LokiJS, Dexie.js, en mémoire, SQLite, exécuté dans un WebWorker, FoundationDB et DenoKV. Le même code de base de données peut ainsi être réutilisé dans différents environnements. Les environnements d’exécution JavaScript pris en charge, listés dans le README, incluent les navigateurs, Node.js, React Native, Capacitor, NativeScript, Flutter et Electron. Pour la réplication, RxDB fournit un moteur de synchronisation conçu pour fonctionner avec l’infrastructure existante plutôt qu’avec une base de données cloud ou backend spécifique. Le protocole est décrit comme pouvant être implémenté via trois points de terminaison HTTP, et des plugins prêts pour la production sont listés pour GraphQL, CouchDB, WebSocket, WebRTC (P2P), Supabase, Firestore, NATS et Google Drive. La suite de fonctionnalités comprend la journalisation, les pièces jointes, une couche ORM, la gestion des conflits, les middleware, les signaux, l’intégration avec TanStack DB, l’état réactif, la sauvegarde, la réplication, un composant serveur, les stockages, les documents locaux, la validation du schéma, la compression des clés, la migration du schéma, le chiffrement, la prise en charge des CRDT et le peuplement des documents référencés. L’installation se fait via npm (rxdb et rxjs). Le README montre un démarrage rapide qui crée une base de données avec un stockage, ajoute une collection avec un schéma JSON, insère un document, exécute une requête avec exec() et observe une requête via un observable. La documentation, les tutoriels et les projets d’exemple sont hébergés sur rxdb.info et dans le répertoire examples du dépôt. Le projet mentionne également des plugins premium disponibles à l’achat et le support communautaire via Discord, Twitter et LinkedIn. La première version de RxDB a été publiée en 2018, selon le README.