Alternatives to RxDB logo

Alternatives to RxDB

MongoDB, Pouchdb, WatermelonDB, NeDB, and LokiJS are the most popular alternatives and competitors to RxDB.
58
179
+ 1
63

What is RxDB and what are its top alternatives?

RxDB is a popular JavaScript database library that enables developers to build reactive, offline-first applications. It provides seamless synchronization between client and server databases, supports real-time data updates, and offers encryption for secure data storage. However, RxDB may have a steep learning curve for beginners and can be challenging to set up in complex projects.

  1. CouchDB: CouchDB is an open-source database system that uses JSON documents to store data. It features a RESTful API, master-master replication, and built-in conflict detection and resolution. Pros: Easy to scale horizontally, supports MapReduce for data querying. Cons: Can be slower in some use cases compared to other databases.
  2. NeDB: NeDB is a lightweight JavaScript database that mimics the MongoDB API. It is suitable for small to medium-sized applications that require simple data storage. Pros: Easy to use, doesn't require a separate database server. Cons: Limited scalability and features compared to full-fledged databases like MongoDB.
  3. PouchDB: PouchDB is an in-browser database that syncs with Apache CouchDB. It allows developers to build offline-capable web applications and offers seamless replication between client and server databases. Pros: Works well with CouchDB, supports offline data storage. Cons: Limited to browser use, may not be suitable for all types of applications.
  4. LocalForage: LocalForage is a fast and simple library for storing key-value data in the browser. It provides an asynchronous API for accessing data and supports IndexedDB, WebSQL, and localStorage as storage backends. Pros: Easy to use, works across different browsers. Cons: Limited to key-value storage, may not be suitable for complex data structures.
  5. Ionic Storage: Ionic Storage is a storage solution for Ionic and Angular applications that provides a simple API for storing and retrieving data. It offers support for SQLite, IndexedDB, localStorage, and more as storage backends. Pros: Works well with Ionic framework, supports multiple storage options. Cons: Tightly coupled with Ionic, may not be suitable for non-Ionic projects.
  6. SQLite: SQLite is a self-contained, serverless, zero-configuration SQL database engine. It is widely used in mobile and embedded applications due to its small footprint and high performance. Pros: Lightweight, works well for local data storage. Cons: Limited scalability compared to client-server databases.
  7. LokiJS: LokiJS is an in-memory document-oriented database that can be used in the browser or Node.js. It supports indexing, persistence, and a MongoDB-like query language. Pros: Fast and lightweight, suitable for small to medium-sized applications. Cons: Limited to in-memory storage, may not be ideal for large datasets.
  8. WatermelonDB: WatermelonDB is a reactive database for React and React Native applications. It offers an easy-to-use API, automatic schema migrations, and optimized data fetching. Pros: Designed for React/React Native, supports offline data storage. Cons: Limited to React ecosystem, may require additional setup for non-React projects.
  9. Realm: Realm is a mobile database platform that provides fast and reliable data storage for iOS, Android, and React Native applications. It features real-time sync, encryption, and a cross-platform API. Pros: High performance, supports real-time synchronization. Cons: Commercial solution, may have licensing fees for certain use cases.
  10. Dexie.js: Dexie.js is a minimalistic IndexedDB wrapper that simplifies database operations in the browser. It offers a fluent query API, transactions, and integration with Promises. Pros: Easy to use, good performance for browser-based applications. Cons: Limited to IndexedDB, may not be suitable for all browser environments.

Top Alternatives to RxDB

  • MongoDB
    MongoDB

    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding. ...

  • Pouchdb
    Pouchdb

    PouchDB enables applications to store data locally while offline, then synchronize it with CouchDB and compatible servers when the application is back online, keeping the user's data in sync no matter where they next login. ...

  • WatermelonDB
    WatermelonDB

    WatermelonDB is a new way of dealing with user data in React Native and React web apps. It's optimized for building complex applications in React Native, and the number one goal is real-world performance. In simple words, your app must launch fast. ...

  • NeDB
    NeDB

    Embedded persistent or in memory database for Node.js, nw.js, Electron and browsers, 100% JavaScript, no binary dependency. API is a subset of MongoDB's and it's plenty fast. ...

  • LokiJS
    LokiJS

    LokiJS is a document oriented database written in javascript, published under MIT License. Its purpose is to store javascript objects as documents in a nosql fashion and retrieve them with a similar mechanism. Runs in node (including cordova/phonegap and node-webkit), nativescript and the browser. ...

  • Firebase
    Firebase

    Firebase is a cloud service designed to power real-time, collaborative applications. Simply add the Firebase library to your application to gain access to a shared data structure; any changes you make to that data are automatically synchronized with the Firebase cloud and with other clients within milliseconds. ...

  • Apollo
    Apollo

    Build a universal GraphQL API on top of your existing REST APIs, so you can ship new application features fast without waiting on backend changes. ...

  • MySQL
    MySQL

    The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. ...

RxDB alternatives & related posts

MongoDB logo

MongoDB

94.7K
4.1K
The database for giant ideas
94.7K
4.1K
PROS OF MONGODB
  • 829
    Document-oriented storage
  • 594
    No sql
  • 554
    Ease of use
  • 465
    Fast
  • 410
    High performance
  • 255
    Free
  • 219
    Open source
  • 180
    Flexible
  • 145
    Replication & high availability
  • 112
    Easy to maintain
  • 42
    Querying
  • 39
    Easy scalability
  • 38
    Auto-sharding
  • 37
    High availability
  • 31
    Map/reduce
  • 27
    Document database
  • 25
    Easy setup
  • 25
    Full index support
  • 16
    Reliable
  • 15
    Fast in-place updates
  • 14
    Agile programming, flexible, fast
  • 12
    No database migrations
  • 8
    Easy integration with Node.Js
  • 8
    Enterprise
  • 6
    Enterprise Support
  • 5
    Great NoSQL DB
  • 4
    Support for many languages through different drivers
  • 3
    Schemaless
  • 3
    Aggregation Framework
  • 3
    Drivers support is good
  • 2
    Fast
  • 2
    Managed service
  • 2
    Easy to Scale
  • 2
    Awesome
  • 2
    Consistent
  • 1
    Good GUI
  • 1
    Acid Compliant
CONS OF MONGODB
  • 6
    Very slowly for connected models that require joins
  • 3
    Not acid compliant
  • 2
    Proprietary query language

related MongoDB posts

Jeyabalaji Subramanian

Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our production MongoDB to a PostgreSQL database for data warehousing and business intelligence.

We set ourselves the following criteria for the optimal tool that would do this job: - The data replication must be near real-time, yet it should NOT impact the production database - The data replication must be horizontally scalable (based on the load), asynchronous & crash-resilient

Based on the above criteria, we selected the following tools to perform the end to end data replication:

We chose MongoDB Stitch for picking up the changes in the source database. It is the serverless platform from MongoDB. One of the services offered by MongoDB Stitch is Stitch Triggers. Using stitch triggers, you can execute a serverless function (in Node.js) in real time in response to changes in the database. When there are a lot of database changes, Stitch automatically "feeds forward" these changes through an asynchronous queue.

We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service. Interestingly enough, MongoDB stitch offers integration with AWS services.

In the Node.js function, we wrote minimal functionality to communicate the database changes (insert / update / delete / replace) to Amazon SQS.

Next we wrote a minimal micro-service in Python to listen to the message events on SQS, pickup the data payload & mirror the DB changes on to the target Data warehouse. We implemented source data to target data translation by modelling target table structures through SQLAlchemy . We deployed this micro-service as AWS Lambda with Zappa. With Zappa, deploying your services as event-driven & horizontally scalable Lambda service is dumb-easy.

In the end, we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

See more
Robert Zuber

We use MongoDB as our primary #datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and #ETL.

As we pull #microservices from our #monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writes are in process.

See more
Pouchdb logo

Pouchdb

147
6
Open-source JavaScript database inspired by Apache CouchDB that's designed to run well within the browser
147
6
PROS OF POUCHDB
  • 2
    Offline cache
  • 1
    JSON
  • 1
    Very fast
  • 1
    Free
  • 1
    Repication
CONS OF POUCHDB
    Be the first to leave a con

    related Pouchdb posts

    Jonathan Pugh
    Software Engineer / Project Manager / Technical Architect · | 25 upvotes · 3.1M views

    I needed to choose a full stack of tools for cross platform mobile application design & development. After much research and trying different tools, these are what I came up with that work for me today:

    For the client coding I chose Framework7 because of its performance, easy learning curve, and very well designed, beautiful UI widgets. I think it's perfect for solo development or small teams. I didn't like React Native. It felt heavy to me and rigid. Framework7 allows the use of #CSS3, which I think is the best technology to come out of the #WWW movement. No other tech has been able to allow designers and developers to develop such flexible, high performance, customisable user interface elements that are highly responsive and hardware accelerated before. Now #CSS3 includes variables and flexboxes it is truly a powerful language and there is no longer a need for preprocessors such as #SCSS / #Sass / #less. React Native contains a very limited interpretation of #CSS3 which I found very frustrating after using #CSS3 for some years already and knowing its powerful features. The other very nice feature of Framework7 is that you can even build for the browser if you want your app to be available for desktop web browsers. The latest release also includes the ability to build for #Electron so you can have MacOS, Windows and Linux desktop apps. This is not possible with React Native yet.

    Framework7 runs on top of Apache Cordova. Cordova and webviews have been slated as being slow in the past. Having a game developer background I found the tweeks to make it run as smooth as silk. One of those tweeks is to use WKWebView. Another important one was using srcset on images.

    I use #Template7 for the for the templating system which is a no-nonsense mobile-centric #HandleBars style extensible templating system. It's easy to write custom helpers for, is fast and has a small footprint. I'm not forced into a new paradigm or learning some new syntax. It operates with standard JavaScript, HTML5 and CSS 3. It's written by the developer of Framework7 and so dovetails with it as expected.

    I configured TypeScript to work with the latest version of Framework7. I consider TypeScript to be one of the best creations to come out of Microsoft in some time. They must have an amazing team working on it. It's very powerful and flexible. It helps you catch a lot of bugs and also provides code completion in supporting IDEs. So for my IDE I use Visual Studio Code which is a blazingly fast and silky smooth editor that integrates seamlessly with TypeScript for the ultimate type checking setup (both products are produced by Microsoft).

    I use Webpack and Babel to compile the JavaScript. TypeScript can compile to JavaScript directly but Babel offers a few more options and polyfills so you can use the latest (and even prerelease) JavaScript features today and compile to be backwards compatible with virtually any browser. My favorite recent addition is "optional chaining" which greatly simplifies and increases readability of a number of sections of my code dealing with getting and setting data in nested objects.

    I use some Ruby scripts to process images with ImageMagick and pngquant to optimise for size and even auto insert responsive image code into the HTML5. Ruby is the ultimate cross platform scripting language. Even as your scripts become large, Ruby allows you to refactor your code easily and make it Object Oriented if necessary. I find it the quickest and easiest way to maintain certain aspects of my build process.

    For the user interface design and prototyping I use Figma. Figma has an almost identical user interface to #Sketch but has the added advantage of being cross platform (MacOS and Windows). Its real-time collaboration features are outstanding and I use them a often as I work mostly on remote projects. Clients can collaborate in real-time and see changes I make as I make them. The clickable prototyping features in Figma are also very well designed and mean I can send clickable prototypes to clients to try user interface updates as they are made and get immediate feedback. I'm currently also evaluating the latest version of #AdobeXD as an alternative to Figma as it has the very cool auto-animate feature. It doesn't have real-time collaboration yet, but I heard it is proposed for 2019.

    For the UI icons I use Font Awesome Pro. They have the largest selection and best looking icons you can find on the internet with several variations in styles so you can find most of the icons you want for standard projects.

    For the backend I was using the #GraphCool Framework. As I later found out, #GraphQL still has some way to go in order to provide the full power of a mature graph query language so later in my project I ripped out #GraphCool and replaced it with CouchDB and Pouchdb. Primarily so I could provide good offline app support. CouchDB with Pouchdb is very flexible and efficient combination and overcomes some of the restrictions I found in #GraphQL and hence #GraphCool also. The most impressive and important feature of CouchDB is its replication. You can configure it in various ways for backups, fault tolerance, caching or conditional merging of databases. CouchDB and Pouchdb even supports storing, retrieving and serving binary or image data or other mime types. This removes a level of complexity usually present in database implementations where binary or image data is usually referenced through an #HTML5 link. With CouchDB and Pouchdb apps can operate offline and sync later, very efficiently, when the network connection is good.

    I use PhoneGap when testing the app. It auto-reloads your app when its code is changed and you can also install it on Android phones to preview your app instantly. iOS is a bit more tricky cause of Apple's policies so it's not available on the App Store, but you can build it and install it yourself to your device.

    So that's my latest mobile stack. What tools do you use? Have you tried these ones?

    See more
    Mike Endale
    Shared insights
    on
    Android SDKAndroid SDKRealmRealmPouchdbPouchdb
    at

    We are building an offline-first Android SDK app. The solution we're working on runs on a mobile device in areas where internet connectivity is intermittent or does not exist. The applications needs to be able to collect data and when it reaches a home base or finds internet connectivity, we'll sync it with the host.

    We've heard Realm and Pouchdb could be a good solution, but we are curious if anyone has any experience with either or have another path forward.

    See more
    WatermelonDB logo

    WatermelonDB

    12
    1
    🍉 Next-gen database for powerful React and React Native apps that scales to 10,000s of records and remains...
    12
    1
    PROS OF WATERMELONDB
    • 1
      Undefined is not an object (evaluating 'columnSchema.ty
    CONS OF WATERMELONDB
      Be the first to leave a con

      related WatermelonDB posts

      NeDB logo

      NeDB

      37
      0
      Simple in-app or in-browser pure javascript database
      37
      0
      PROS OF NEDB
        Be the first to leave a pro
        CONS OF NEDB
          Be the first to leave a con

          related NeDB posts

          LokiJS logo

          LokiJS

          38
          3
          In-memory JavaScript Datastore with Persistence
          38
          3
          PROS OF LOKIJS
          • 3
            Can query the objects directly
          CONS OF LOKIJS
            Be the first to leave a con

            related LokiJS posts

            Firebase logo

            Firebase

            41.8K
            2K
            The Realtime App Platform
            41.8K
            2K
            PROS OF FIREBASE
            • 371
              Realtime backend made easy
            • 270
              Fast and responsive
            • 242
              Easy setup
            • 215
              Real-time
            • 191
              JSON
            • 134
              Free
            • 128
              Backed by google
            • 83
              Angular adaptor
            • 68
              Reliable
            • 36
              Great customer support
            • 32
              Great documentation
            • 25
              Real-time synchronization
            • 21
              Mobile friendly
            • 19
              Rapid prototyping
            • 14
              Great security
            • 12
              Automatic scaling
            • 11
              Freakingly awesome
            • 8
              Super fast development
            • 8
              Angularfire is an amazing addition!
            • 8
              Chat
            • 6
              Firebase hosting
            • 6
              Built in user auth/oauth
            • 6
              Awesome next-gen backend
            • 6
              Ios adaptor
            • 4
              Speed of light
            • 4
              Very easy to use
            • 3
              Great
            • 3
              It's made development super fast
            • 3
              Brilliant for startups
            • 2
              Free hosting
            • 2
              Cloud functions
            • 2
              JS Offline and Sync suport
            • 2
              Low battery consumption
            • 2
              .net
            • 2
              The concurrent updates create a great experience
            • 2
              Push notification
            • 2
              I can quickly create static web apps with no backend
            • 2
              Great all-round functionality
            • 2
              Free authentication solution
            • 1
              Easy Reactjs integration
            • 1
              Google's support
            • 1
              Free SSL
            • 1
              CDN & cache out of the box
            • 1
              Easy to use
            • 1
              Large
            • 1
              Faster workflow
            • 1
              Serverless
            • 1
              Good Free Limits
            • 1
              Simple and easy
            CONS OF FIREBASE
            • 31
              Can become expensive
            • 16
              No open source, you depend on external company
            • 15
              Scalability is not infinite
            • 9
              Not Flexible Enough
            • 7
              Cant filter queries
            • 3
              Very unstable server
            • 3
              No Relational Data
            • 2
              Too many errors
            • 2
              No offline sync

            related Firebase posts

            Stephen Gheysens
            Lead Solutions Engineer at Inscribe · | 14 upvotes · 1.9M views

            Hi Otensia! I'd definitely recommend using the skills you've already got and building with JavaScript is a smart way to go these days. Most platform services have JavaScript/Node SDKs or NPM packages, many serverless platforms support Node in case you need to write any backend logic, and JavaScript is incredibly popular - meaning it will be easy to hire for, should you ever need to.

            My advice would be "don't reinvent the wheel". If you already have a skill set that will work well to solve the problem at hand, and you don't need it for any other projects, don't spend the time jumping into a new language. If you're looking for an excuse to learn something new, it would be better to invest that time in learning a new platform/tool that compliments your knowledge of JavaScript. For this project, I might recommend using Netlify, Vercel, or Google Firebase to quickly and easily deploy your web app. If you need to add user authentication, there are great examples out there for Firebase Authentication, Auth0, or even Magic (a newcomer on the Auth scene, but very user friendly). All of these services work very well with a JavaScript-based application.

            See more
            Eugene Cheah

            For inboxkitten.com, an opensource disposable email service;

            We migrated our serverless workload from Cloud Functions for Firebase to CloudFlare workers, taking advantage of the lower cost and faster-performing edge computing of Cloudflare network. Made possible due to our extremely low CPU and RAM overhead of our serverless functions.

            If I were to summarize the limitation of Cloudflare (as oppose to firebase/gcp functions), it would be ...

            1. <5ms CPU time limit
            2. Incompatible with express.js
            3. one script limitation per domain

            Limitations our workload is able to conform with (YMMV)

            For hosting of static files, we migrated from Firebase to CommonsHost

            More details on the trade-off in between both serverless providers is in the article

            See more
            Apollo logo

            Apollo

            2.4K
            25
            GraphQL server for Express, Connect, Hapi, Koa and more
            2.4K
            25
            PROS OF APOLLO
            • 12
              From the creators of Meteor
            • 8
              Great documentation
            • 3
              Open source
            • 2
              Real time if use subscription
            CONS OF APOLLO
            • 1
              File upload is not supported
            • 1
              Increase in complexity of implementing (subscription)

            related Apollo posts

            Nick Rockwell
            SVP, Engineering at Fastly · | 46 upvotes · 4.4M views

            When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

            So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

            React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

            Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

            See more
            Adam Neary

            At Airbnb we use GraphQL Unions for a "Backend-Driven UI." We have built a system where a very dynamic page is constructed based on a query that will return an array of some set of possible “sections.” These sections are responsive and define the UI completely.

            The central file that manages this would be a generated file. Since the list of possible sections is quite large (~50 sections today for Search), it also presumes we have a sane mechanism for lazy-loading components with server rendering, which is a topic for another post. Suffice it to say, we do not need to package all possible sections in a massive bundle to account for everything up front.

            Each section component defines its own query fragment, colocated with the section’s component code. This is the general idea of Backend-Driven UI at Airbnb. It’s used in a number of places, including Search, Trip Planner, Host tools, and various landing pages. We use this as our starting point, and then in the demo show how to (1) make and update to an existing section, and (2) add a new section.

            While building your product, you want to be able to explore your schema, discovering field names and testing out potential queries on live development data. We achieve that today with GraphQL Playground, the work of our friends at #Prisma. The tools come standard with Apollo Server.

            #BackendDrivenUI

            See more
            MySQL logo

            MySQL

            127.5K
            3.8K
            The world's most popular open source database
            127.5K
            3.8K
            PROS OF MYSQL
            • 800
              Sql
            • 679
              Free
            • 562
              Easy
            • 528
              Widely used
            • 490
              Open source
            • 180
              High availability
            • 160
              Cross-platform support
            • 104
              Great community
            • 79
              Secure
            • 75
              Full-text indexing and searching
            • 26
              Fast, open, available
            • 16
              Reliable
            • 16
              SSL support
            • 15
              Robust
            • 9
              Enterprise Version
            • 7
              Easy to set up on all platforms
            • 3
              NoSQL access to JSON data type
            • 1
              Relational database
            • 1
              Easy, light, scalable
            • 1
              Sequel Pro (best SQL GUI)
            • 1
              Replica Support
            CONS OF MYSQL
            • 16
              Owned by a company with their own agenda
            • 3
              Can't roll back schema changes

            related MySQL posts

            Nick Rockwell
            SVP, Engineering at Fastly · | 46 upvotes · 4.4M views

            When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

            So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

            React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

            Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

            See more

            Hello, I am building a website for a school that's used by students to find Zoom meeting links, view their marks, and check course materials. It is also used by the teachers to put the meeting links, students' marks, and course materials.

            I created a similar website using HTML, CSS, PHP, and MySQL. Now I want to implement this project using some frameworks: Next.js, ExpressJS and use PostgreSQL instead of MYSQL

            I want to have some advice on whether these are enough to implement my project.

            See more