rxdb  by pubkey

Reactive, local-first NoSQL database for JavaScript

Created 9 years ago
23,130 stars

Top 2.0% on SourcePulse

GitHubView on GitHub
Project Summary

A fast, local-first, reactive NoSQL database for JavaScript applications, RxDB simplifies the development of real-time UIs and high-performance backends. It targets developers building websites, hybrid apps, Electron apps, PWAs, Deno, and Node.js applications, offering a robust solution for managing local data with real-time synchronization capabilities.

How It Works

RxDB operates on a local-first, reactive paradigm, allowing applications to subscribe to data changes, including query results and individual document fields. This facilitates seamless real-time updates in user interfaces. Its architecture is built around a flexible storage interface, enabling developers to swap underlying storage engines like IndexedDB, OPFS, SQLite, or in-memory stores. A key feature is its battle-tested Sync Engine, which supports replication via various protocols and plugins (HTTP, GraphQL, CouchDB, WebRTC, etc.), allowing integration with diverse backend infrastructures.

Quick Start & Requirements

  • Install: npm install rxdb rxjs --save
  • Prerequisites: A JavaScript runtime environment (Browsers, Node.js, React Native, Electron, etc.). Specific storage plugins are required for different environments (e.g., getRxStorageLocalstorage for browsers).
  • Links: Official documentation and quickstart guide available at https://rxdb.info/. Example projects are also provided.

Highlighted Details

  • Reactive data model enables real-time UI updates and event subscriptions.
  • Flexible storage layer supports numerous backends including LocalStorage, IndexedDB, OPFS, LokiJS, Dexie.js, in-memory, SQLite, FoundationDB, and DenoKV.
  • Comprehensive replication support through a Sync Engine with plugins for HTTP, GraphQL, CouchDB, Websocket, WebRTC (P2P), Supabase, Firestore, and NATS.
  • Broad runtime compatibility across Browsers, Node.js, React Native, Electron, Capacitor, NativeScript, and Flutter.

Maintenance & Community

Community engagement is encouraged via Discord. The project also maintains a presence on LinkedIn. Contribution guidelines are available, and premium plugins may require purchase.

Licensing & Compatibility

The provided documentation does not explicitly state the project's license. Therefore, compatibility for commercial use or closed-source linking cannot be determined from the available information.

Limitations & Caveats

The README emphasizes a comprehensive feature set, suggesting few immediate limitations. However, the mention of "premium plugins" indicates that certain advanced functionalities may not be included in the open-source offering. The absence of explicit licensing information is a significant caveat for adoption decisions.

Health Check
Last Commit

23 hours ago

Responsiveness

Inactive

Pull Requests (30d)
276
Issues (30d)
12
Star History
82 stars in the last 30 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Joe Walnes Joe Walnes(Head of Experimental Projects at Stripe), and
9 more.

3FS by deepseek-ai

0.1%
10k
Distributed file system for AI training/inference workloads
Created 1 year ago
Updated 1 week ago
Feedback? Help us improve.