rxdb  by pubkey

Reactive, local-first NoSQL database for JavaScript

Created 9 years ago
23,258 stars

Top 2.2% 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

21 hours ago

Responsiveness

Inactive

Pull Requests (30d)
133
Issues (30d)
3
Star History
48 stars in the last 30 days

Explore Similar Projects

Starred by Matthew Johnson Matthew Johnson(Coauthor of JAX; Research Scientist at Google Brain) and Luis Capelo Luis Capelo(Cofounder of Lightning AI).

portaljs by datopian

0.3%
2k
Data portal builder framework
Created 14 years ago
Updated 14 hours ago
Feedback? Help us improve.