From d69e6d43feba0b1c3ae2102c69d68a7823411ed6 Mon Sep 17 00:00:00 2001 From: Hadar Rottenberg Date: Thu, 21 May 2020 23:26:10 +0300 Subject: [PATCH 1/3] fix: make import isomorphic (this breaks EXPO) --- browser.android.js | 2 -- browser.ios.js | 2 -- 2 files changed, 4 deletions(-) delete mode 100644 browser.android.js delete mode 100644 browser.ios.js diff --git a/browser.android.js b/browser.android.js deleted file mode 100644 index d054b7cb..00000000 --- a/browser.android.js +++ /dev/null @@ -1,2 +0,0 @@ -module.exports.Gun = require('./gun.js') -module.exports.SEA = require('./sea.js') \ No newline at end of file diff --git a/browser.ios.js b/browser.ios.js deleted file mode 100644 index d054b7cb..00000000 --- a/browser.ios.js +++ /dev/null @@ -1,2 +0,0 @@ -module.exports.Gun = require('./gun.js') -module.exports.SEA = require('./sea.js') \ No newline at end of file From 213a14b0c8bd8d97af36201b0571eb7391a62280 Mon Sep 17 00:00:00 2001 From: Hadar Rottenberg Date: Thu, 21 May 2020 23:26:20 +0300 Subject: [PATCH 2/3] add: better RN docs --- README.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d96f9c2b..1db8451c 100644 --- a/README.md +++ b/README.md @@ -208,10 +208,26 @@ some of the performance issues are related to the javascript engine, which can b enabled versions of v8 or jsc for window.crypto.getRandomValues you can use either react-native-crypto or react-native-get-random-values - +### Installation Instructions - `npm install buffer text-encoding react-native-webview-bridge react-native-get-random-values --save` -- follow instructions to install [WebviewCrypto](https://github.com/saulshanabrook/react-native-webview-crypto) +- follow instructions to install [WebviewCrypto](https://github.com/webview-crypto/react-native-webview-crypto) +- for persistent storage you'll need to include RAD + asyncstorage adapter like so + you can pass any storage adapter to the Store that implements the AsyncStorage setItem,getItem API + ```javascript + import {AsyncStorage} from 'react-native' + import Gun from 'gun/gun' + import SEA from 'gun/sea' + import 'gun/lib/radix.js' + import 'gun/lib/radisk.js' + import 'gun/lib/store.js' + import Store from 'gun/lib/ras.js' + //rad asyncstorage adapter, on Android asyncstorage has 6mb limit by default + const asyncStore = Store({AsyncStorage}); + //start gun + Gun({peers:[...],store:asyncStore}) + ``` +### React Native Example (SEA+RAD) see working [example repo](https://github.com/gooddollar/gun-webcrypto-react-native) ## Deploy From 55b9231d476d9fbede5feae7832995e7d56b4af4 Mon Sep 17 00:00:00 2001 From: Hadar Rottenberg Date: Thu, 21 May 2020 23:37:07 +0300 Subject: [PATCH 3/3] add: info about RN v8 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1db8451c..6bc42488 100644 --- a/README.md +++ b/README.md @@ -206,6 +206,8 @@ Like nodejs we need to shim webcrypto we do this with a webview bridge isomorphic-webcrypto can also work but lacks in performance and has issues with encrypting large files some of the performance issues are related to the javascript engine, which can be improved if switching to JIT enabled versions of v8 or jsc +- [react-native-v8](https://www.npmjs.com/package/react-native-v8) +- optimized for speed and space: [android-v8-nointl-jit](https://www.npmjs.com/package/v8-android-jit-nointl) for window.crypto.getRandomValues you can use either react-native-crypto or react-native-get-random-values ### Installation Instructions