{"repo":"pubkey/client-side-databases","free":true,"listed":false,"github":"https://github.com/pubkey/client-side-databases","clone":"git clone https://github.com/pubkey/client-side-databases.git","description":"An implementation of the exact same app in Firestore, AWS Datastore, PouchDB, RxDB and WatermelonDB","language":"TypeScript","stars":897,"topics":["database","firebase","firestore","aws-amplify","rxdb","pouchdb","watermelondb","angular","datastore","indexeddb"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"Local First Database Comparison In this project I have implemented the exact same chat application with different local first database technologies. You can use it to compare metrics and learn about the differences. The chat app is a web based angular application, with functionality similar to Whatsapp Web. Implemented Databases: - AWS Amplify Datastore - Firebase Firestore - PouchDB with IndexedDB adapter & CouchDB replication - RxDB LokiJS with LokiJS Storage & GraphQL replication - RxDB Dexie.js with Dexie.js Storage & GraphQL replication - WatermelonDB with LokiJS adapter (no backend sync atm) Metrics All metrics are measured automatically via code in a browser tests (chrome:headless). The results heavily depend on the developers device. You should compare the values relative to another and not as absolute values. Also you might want to create new metrics that better represent how you would use the respective database. You can reproduce these values by running sh measure-metrics.sh in the root folder. Metric \\ Project aws firebase pouchdb rxdb-dexie rxdb-lokijs watermelondb --------------------------------------- ------ -------- ------- ---------- ----------- ------------ First angular component render 231ms 259ms 219ms 188ms 207ms 202ms Page load time 289ms 207ms 275ms 250ms 267ms 259ms First full render 390ms 746ms 826ms 473ms 595ms 275ms Insert one message 16ms 262ms 16ms 18ms 8ms 5ms Inserting 20 messages one after another 433ms 4639ms 241ms 223ms 167ms 107ms Insertin","default_branch":null,"files":null,"tree":[],"storefront":"/r/pubkey","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/pubkey/client-side-databases/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}