Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
pouchdb-adapter-react-native-sqlite
Advanced tools
Readme
PouchDB adapter using ReactNative SQLite as its backing store.
SQLite storage performs much faster than AsyncStorage, especially with secondary index. Here is benchmark results:
1) allDocs speed | min | max | mean |
---|---|---|---|
AsyncStorage | 72ms | 94ms | 77ms |
SQLite | 27ms | 39ms | 28ms |
2) query speed | min | max | mean |
---|---|---|---|
AsyncStorage | 1,075ms | 1,117ms | 1,092ms |
SQLite | 33ms | 39ms | 35ms |
{ include_docs: true }
3) bulkDocs speed | total | mean |
---|---|---|
AsyncStorage | 25.821ms | 5.16ms |
SQLite | 22.213ms | 4.44ms |
4) allDocs speed | total | mean |
---|---|---|
AsyncStorage | 189,379ms | 37.87ms |
SQLite | 30,527ms | 6.10ms |
allDocs
options: { include_docs: true, attachments: true }
Read this blogpost for the complete description. Here is a working demo app.
Install PouchDB core packages:
npm i pouchdb-adapter-http pouchdb-mapreduce
And install hacked packages for React Native:
npm i @craftzdog/pouchdb-core-react-native @craftzdog/pouchdb-replication-react-native
Next, install SQLite3 engine modules:
npm i pouchdb-adapter-react-native-sqlite react-native-sqlite-2
react-native link react-native-sqlite-2
Then, install some packages to polyfill functions that PouchDB needs:
npm i base-64 events
Make a js file to polyfill some functions that PouchDB needs:
import {decode, encode} from 'base-64'
if (!global.btoa) {
global.btoa = encode;
}
if (!global.atob) {
global.atob = decode;
}
// Avoid using node dependent modules
process.browser = true
Import it at the first line of your index.js
.
Make pouchdb.js
like so:
import PouchDB from '@craftzdog/pouchdb-core-react-native'
import HttpPouch from 'pouchdb-adapter-http'
import replication from '@craftzdog/pouchdb-replication-react-native'
import mapreduce from 'pouchdb-mapreduce'
import SQLite from 'react-native-sqlite-2'
import SQLiteAdapterFactory from 'pouchdb-adapter-react-native-sqlite'
const SQLiteAdapter = SQLiteAdapterFactory(SQLite)
export default PouchDB
.plugin(HttpPouch)
.plugin(replication)
.plugin(mapreduce)
.plugin(SQLiteAdapter)
If you need other plugins like pouchdb-find
, just add them to it.
Then, use it as usual:
import PouchDB from './pouchdb'
function loadDB () {
return new PouchDB('mydb.db', { adapter: 'react-native-sqlite' })
}
pouchdb-utils
dependencyFAQs
PouchDB adapter using ReactNative SQLite Plugin as its data store.
The npm package pouchdb-adapter-react-native-sqlite receives a total of 690 weekly downloads. As such, pouchdb-adapter-react-native-sqlite popularity was classified as not popular.
We found that pouchdb-adapter-react-native-sqlite demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.