Об этом проекте

RxDB (Reactive Database) — это локальная NoSQL-база данных для JavaScript-приложений, построенная на принципах реактивности. Помимо запросов к текущему состоянию, приложения могут подписываться на изменения в результатах запросов или даже в отдельных полях документов, что делает её полезной для приложений с реальным временем и пользовательским интерфейсом. База данных построена вокруг интерфейса хранения, что позволяет заменять базовый движок хранения. Документированные варианты хранения включают LocalStorage, IndexedDB, OPFS, LokiJS, Dexie.js, хранение в памяти, SQLite, работу в WebWorker, FoundationDB и DenoKV. Это позволяет использовать один и тот же код базы данных в различных средах. Поддерживаемые среды выполнения JavaScript включают браузеры, Node.js, React Native, Capacitor, NativeScript, Flutter и Electron. Для репликации RxDB предоставляет Sync Engine, предназначенный для работы с существующей инфраструктурой, а не с конкретной облачной или бэкенд-базой данных. Протокол описывается как реализуемый через три HTTP-эндпоинта, а готовые к производству плагины доступны для GraphQL, CouchDB, WebSocket, WebRTC (P2P), Supabase, Firestore, NATS и Google Drive. Функциональность включает логирование, вложения, слой ORM, обработку конфликтов, middleware, сигналы, интеграцию с TanStack DB, реактивное состояние, резервное копирование, репликацию, серверный компонент, хранилища, локальные документы, валидацию схем, сжатие ключей, миграцию схем, шифрование, поддержку CRDT и заполнение ссылочных документов. Установка осуществляется через npm (rxdb и rxjs). В README приведён пример быстрого старта, показывающий создание базы данных с хранилищем, добавление коллекции с JSON-схемой, вставку документа, выполнение запроса с помощью exec() и наблюдение за запросом через observable. Документация, учебники и примеры проектов размещены на rxdb.info и в директории examples репозитория. Проект также упоминает платные плагины и поддержку сообщества через Discord, Twitter и LinkedIn. Первая версия RxDB была выпущена в 2018 году.