You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<scripttype="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"RxDB","applicationCategory":"DeveloperApplication","operatingSystem":"Any","description":"A fast, local-first, reactive NoSQL database for JavaScript applications. Supports offline-first sync, real-time replication, and works across browsers, Node.js, Electron, React Native, and Flutter.","url":"https://rxdb.info","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"author":{"@type":"Organization","name":"RxDB","url":"https://rxdb.info","logo":"https://rxdb.info/files/logo/logo.svg","sameAs":["https://github.com/pubkey/rxdb","https://twitter.com/rxdbjs","https://www.linkedin.com/company/rxdb"]}}</script><linkrel="stylesheet" href="/assets/css/styles.bc8de9f0.css">
<scripttype="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"RxDB","applicationCategory":"DeveloperApplication","operatingSystem":"Any","description":"A fast, local-first, reactive NoSQL database for JavaScript applications. Supports offline-first sync, real-time replication, and works across browsers, Node.js, Electron, React Native, and Flutter.","url":"https://rxdb.info","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"author":{"@type":"Organization","name":"RxDB","url":"https://rxdb.info","logo":"https://rxdb.info/files/logo/logo.svg","sameAs":["https://github.com/pubkey/rxdb","https://twitter.com/rxdbjs","https://www.linkedin.com/company/rxdb"]}}</script><linkrel="stylesheet" href="/assets/css/styles.bc8de9f0.css">
<scripttype="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"RxDB","applicationCategory":"DeveloperApplication","operatingSystem":"Any","description":"A fast, local-first, reactive NoSQL database for JavaScript applications. Supports offline-first sync, real-time replication, and works across browsers, Node.js, Electron, React Native, and Flutter.","url":"https://rxdb.info","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"author":{"@type":"Organization","name":"RxDB","url":"https://rxdb.info","logo":"https://rxdb.info/files/logo/logo.svg","sameAs":["https://github.com/pubkey/rxdb","https://twitter.com/rxdbjs","https://www.linkedin.com/company/rxdb"]}}</script><linkrel="stylesheet" href="/assets/css/styles.bc8de9f0.css">
Because of how it works, it has proven to be hard to integrate it with other modern JavaScript frameworks like <ahref="https://github.com/urigo/angular-meteor" target="_blank" rel="noopener noreferrer" class="">angular</a>, <aclass="" href="/articles/vue-database.html">vue.js</a> or svelte.</p>
63
63
<p>Meteor uses MongoDB in the backend and can replicate with a Minimongo database in the frontend.
64
64
While testing, it has proven to be impossible to make a meteor app <strong>offline first</strong> capable. There are <ahref="https://github.com/frozeman/meteor-persistent-minimongo2" target="_blank" rel="noopener noreferrer" class="">some projects</a> that might do this, but all are unmaintained.</p>
65
-
<p><aclass="" href="/articles/alternatives/alternatives/meteor-alternative.html">Read more about why RxDB is a good alternative to Meteor</a>.</p>
65
+
<p><aclass="" href="/articles/alternatives/meteor-alternative.html">Read more about why RxDB is a good alternative to Meteor</a>.</p>
66
66
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="minimongo">Minimongo<ahref="#minimongo" class="hash-link" aria-label="Direct link to Minimongo" title="Direct link to Minimongo" translate="no"></a></h3>
67
67
<p>Forked in Jan 2014 from meteorJSs' minimongo package, Minimongo is a client-side, in-memory, JavaScript version of MongoDB with backend replication over HTTP. Similar to MongoDB, it stores data in documents inside of <aclass="" href="/rx-collection.html">collections</a> and also has the same query syntax. Minimongo has different storage adapters for IndexedDB, WebSQL, <aclass="" href="/articles/localstorage.html">LocalStorage</a> and SQLite.
68
68
Compared to RxDB, Minimongo has no concept of revisions or conflict handling, which might lead to undefined behavior when used with replication or in multiple browser tabs. Minimongo has no observable queries or changestream.</p>
69
-
<p><aclass="" href="/articles/alternatives/alternatives/minimongo-alternative.html">Read more about why RxDB is a good alternative to Minimongo</a>.</p>
69
+
<p><aclass="" href="/articles/alternatives/minimongo-alternative.html">Read more about why RxDB is a good alternative to Minimongo</a>.</p>
70
70
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="watermelondb">WatermelonDB<ahref="#watermelondb" class="hash-link" aria-label="Direct link to WatermelonDB" title="Direct link to WatermelonDB" translate="no"></a></h3>
<p>WatermelonDB is a reactive & asynchronous JavaScript database. While originally made for <aclass="" href="/articles/react-database.html">React</a> and <aclass="" href="/react-native-database.html">React Native</a>, it can also be used with other JavaScript frameworks. The main goal of WatermelonDB is <strong>performance</strong> within an application with lots of data.
73
73
In React Native, WatermelonDB uses the provided SQLite database. Also there is an Expo plugin for WatermelonDB. In a browser, WatermelonDB uses the LokiJS in-memory database to store and query data. WatermelonDB is one of the rare projects that support both Flow and Typescript at the same time.</p>
74
-
<p><aclass="" href="/articles/alternatives/alternatives/watermelondb-alternative.html">Read more about why RxDB is a good alternative to WatermelonDB</a>.</p>
74
+
<p><aclass="" href="/articles/alternatives/watermelondb-alternative.html">Read more about why RxDB is a good alternative to WatermelonDB</a>.</p>
75
75
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="aws-amplify">AWS Amplify<ahref="#aws-amplify" class="hash-link" aria-label="Direct link to AWS Amplify" title="Direct link to AWS Amplify" translate="no"></a></h3>
<p>AWS Amplify is a collection of tools and libraries to develop web- and mobile frontend applications. Similar to firebase, it provides everything needed like authentication, analytics, a REST API, storage and so on. Everything hosted in the AWS Cloud, even when they state that <em>"AWS Amplify is designed to be open and pluggable for any custom backend or service"</em>. For realtime replication, AWS Amplify can connect to an AWS App-Sync GraphQL endpoint.</p>
<spandata-line=""><spanstyle="color:var(--shiki-token-function)"> sort</span><spanstyle="color:var(--shiki-token-keyword)">:</span><spanstyle="color:var(--shiki-foreground)"> s </span><spanstyle="color:var(--shiki-token-keyword)">=></span><spanstyle="color:var(--shiki-token-constant)"> s</span><spanstyle="color:var(--shiki-token-function)">.rating</span><spanstyle="color:var(--shiki-foreground)">(</span><spanstyle="color:var(--shiki-token-constant)">SortDirection</span><spanstyle="color:var(--shiki-foreground)">.</span><spanstyle="color:var(--shiki-token-constant)">ASCENDING</span><spanstyle="color:var(--shiki-foreground)">)</span><spanstyle="color:var(--shiki-token-function)">.title</span><spanstyle="color:var(--shiki-foreground)">(</span><spanstyle="color:var(--shiki-token-constant)">SortDirection</span><spanstyle="color:var(--shiki-foreground)">.</span><spanstyle="color:var(--shiki-token-constant)">DESCENDING</span><spanstyle="color:var(--shiki-foreground)">)</span></span>
<p>The biggest difference to RxDB is that you have to use the AWS cloud backends. This might not be a problem if your data is at AWS anyway.</p>
93
-
<p><aclass="" href="/articles/alternatives/alternatives/aws-amplify-datastore-alternative.html">Read more about why RxDB is a good alternative to AWS Amplify DataStore</a>.</p>
93
+
<p><aclass="" href="/articles/alternatives/aws-amplify-datastore-alternative.html">Read more about why RxDB is a good alternative to AWS Amplify DataStore</a>.</p>
94
94
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="rethinkdb">RethinkDB<ahref="#rethinkdb" class="hash-link" aria-label="Direct link to RethinkDB" title="Direct link to RethinkDB" translate="no"></a></h3>
<p>RethinkDB is a backend database that pushed dynamic JSON data to the client in realtime. It was founded in 2009 and the company shut down in 2016.
97
97
RethinkDB is not a client side database, it streams data from the backend to the client which of course does not work while offline.</p>
98
-
<p><aclass="" href="/articles/alternatives/alternatives/rethinkdb-alternative.html">Read more about why RxDB is a good alternative to RethinkDB</a>.</p>
98
+
<p><aclass="" href="/articles/alternatives/rethinkdb-alternative.html">Read more about why RxDB is a good alternative to RethinkDB</a>.</p>
99
99
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="horizon">Horizon<ahref="#horizon" class="hash-link" aria-label="Direct link to Horizon" title="Direct link to Horizon" translate="no"></a></h3>
100
100
<p>Horizon is the client side library for RethinkDB which provides useful functions like authentication, permission management and subscription to a RethinkDB backend. Offline support <ahref="https://github.com/rethinkdb/horizon/issues/58" target="_blank" rel="noopener noreferrer" class="">never made</a> it to horizon.</p>
101
-
<p><aclass="" href="/articles/alternatives/alternatives/horizon-alternative.html">Read more about why RxDB is a good alternative to Horizon</a>.</p>
101
+
<p><aclass="" href="/articles/alternatives/horizon-alternative.html">Read more about why RxDB is a good alternative to Horizon</a>.</p>
102
102
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="supabase">Supabase<ahref="#supabase" class="hash-link" aria-label="Direct link to Supabase" title="Direct link to Supabase" translate="no"></a></h3>
<p>Supabase labels itself as "<em>an open source Firebase alternative</em>". It is a collection of open source tools that together mimic many Firebase features, most of them by providing a wrapper around a PostgreSQL database. While it has realtime queries that run over the wire, like with RethinkDB, Supabase has no client-side storage or replication feature and therefore is not offline first.</p>
105
-
<p><aclass="" href="/articles/alternatives/alternatives/supabase-alternative.html">Read more about why RxDB is a good alternative to Supabase</a>.</p>
105
+
<p><aclass="" href="/articles/alternatives/supabase-alternative.html">Read more about why RxDB is a good alternative to Supabase</a>.</p>
106
106
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="couchdb">CouchDB<ahref="#couchdb" class="hash-link" aria-label="Direct link to CouchDB" title="Direct link to CouchDB" translate="no"></a></h3>
<p>Apache CouchDB is a server-side, document-oriented database that is mostly known for its multi-master replication feature. Instead of having a master-slave replication, with CouchDB you can run replication in any constellation without having a master server as bottleneck where the server even can go off- and online at any time. This comes with the drawback of having a slow replication with much network overhead.
109
109
CouchDB has a changestream and a query syntax similar to MongoDB.</p>
110
-
<p><aclass="" href="/articles/alternatives/alternatives/couchdb-alternative.html">Read more about why RxDB is a good alternative to CouchDB</a>.</p>
110
+
<p><aclass="" href="/articles/alternatives/couchdb-alternative.html">Read more about why RxDB is a good alternative to CouchDB</a>.</p>
111
111
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="pouchdb">PouchDB<ahref="#pouchdb" class="hash-link" aria-label="Direct link to PouchDB" title="Direct link to PouchDB" translate="no"></a></h3>
<p>PouchDB is a JavaScript database that is compatible with most of the CouchDB API. It has an adapter system that allows you to switch out the underlying storage layer. There are many adapters like for <aclass="" href="/rx-storage-indexeddb.html">IndexedDB</a>, <aclass="" href="/rx-storage-sqlite.html">SQLite</a>, the Filesystem and so on. The main benefit is to be able to replicate data with any CouchDB compatible endpoint.
114
114
Because of the CouchDB compatibility, PouchDB has to do a lot of overhead in handling the revision tree of documents, which is why it can show bad performance for bigger datasets.
115
115
RxDB was originally build around PouchDB until the storage layer was abstracted out in version <aclass="" href="/releases/10.0.0.html">10.0.0</a> so it now allows to use different <code>RxStorage</code> implementations. PouchDB has some performance issues because of how it has to store the document revision tree to stay compatible with the CouchDB API.</p>
116
-
<p><aclass="" href="/articles/alternatives/alternatives/pouchdb-alternative.html">Read more about why RxDB is a good alternative to PouchDB</a>.</p>
116
+
<p><aclass="" href="/articles/alternatives/pouchdb-alternative.html">Read more about why RxDB is a good alternative to PouchDB</a>.</p>
117
117
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="couchbase">Couchbase<ahref="#couchbase" class="hash-link" aria-label="Direct link to Couchbase" title="Direct link to Couchbase" translate="no"></a></h3>
118
118
<p>Couchbase (originally known as Membase) is another NoSQL document database made for realtime applications.
119
119
It uses the N1QL query language which is more SQL like compared to other NoSQL query languages. In theory you can achieve replication of a Couchbase with a PouchDB database, but this has shown to be not <ahref="https://github.com/pouchdb/pouchdb/issues/7793#issuecomment-501624297" target="_blank" rel="noopener noreferrer" class="">that easy</a>.</p>
120
-
<p><aclass="" href="/articles/alternatives/alternatives/couchbase-alternative.html">Read more about why RxDB is a good alternative to Couchbase</a>.</p>
120
+
<p><aclass="" href="/articles/alternatives/couchbase-alternative.html">Read more about why RxDB is a good alternative to Couchbase</a>.</p>
121
121
<h3class="anchor anchorTargetStickyNavbar_Vzrq" id="cloudant">Cloudant<ahref="#cloudant" class="hash-link" aria-label="Direct link to Cloudant" title="Direct link to Cloudant" translate="no"></a></h3>
122
122
<p>Cloudant is a cloud-based service that is based on <aclass="" href="/replication-couchdb.html">CouchDB</a> and has mostly the same features.
123
123
It was originally designed for cloud computing where data can automatically be distributed between servers. But it can also be used to replicate with frontend PouchDB instances to create scalable web applications.
<scripttype="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"RxDB","applicationCategory":"DeveloperApplication","operatingSystem":"Any","description":"A fast, local-first, reactive NoSQL database for JavaScript applications. Supports offline-first sync, real-time replication, and works across browsers, Node.js, Electron, React Native, and Flutter.","url":"https://rxdb.info","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"author":{"@type":"Organization","name":"RxDB","url":"https://rxdb.info","logo":"https://rxdb.info/files/logo/logo.svg","sameAs":["https://github.com/pubkey/rxdb","https://twitter.com/rxdbjs","https://www.linkedin.com/company/rxdb"]}}</script><linkrel="stylesheet" href="/assets/css/styles.bc8de9f0.css">
0 commit comments