Expo React Native test application for MindooDB with native Automerge backend (Rust via UniFFI).
Tests the integration of:
- MindooDB (
/Users/klehmann/git/mindoodb) - local npm link - react-native-automerge-generated (
/Users/klehmann/git/react-native-automerge-generated) - native Rust Automerge bindings - react-native-quick-crypto (v1.0.7) - native crypto via NitroModules
Uses Hermes runtime with native Automerge (no WebAssembly needed).
- Node.js 20 (use
nvm use 20) - npm or yarn
- Expo CLI (automatically via
npx) - Xcode (for iOS builds)
- Android Studio (for Android builds)
npm install# Start Expo Development Server
npm start
# For iOS
npm run ios
# For Android
npm run androidApp.js (MindooDB test)
│
MindooDB (npm link → /Users/klehmann/git/mindoodb)
│
@automerge/automerge/slim + UseApi(nativeApi)
│
react-native-automerge-generated (file: → /Users/klehmann/git/react-native-automerge-generated)
│
Native Rust Automerge (v0.7.3) via UniFFI + JSI
The app tests:
- Tenant creation with encrypted keys
- User registration in directory
- Document creation and modification with native Automerge
- Change iteration and cursor tracking
- PBKDF2 key derivation (310,000 iterations)
- Native crypto operations (AES-GCM, RSA, Ed25519)
Run the test via the "Run Test" button in the app.
App.js- Main component with MindooDB integration testindex.js- Native Automerge initialization + polyfillsReactNativeCryptoAdapter.js- Crypto adapter for MindooDBapp.json- Expo configurationpatches/- patch-package fixes for react-native and react-native-quick-crypto
- Native Automerge - Uses Rust instead of WebAssembly for CRDT operations
- Hermes compatible - No JSC WebAssembly requirement
- Native crypto - react-native-quick-crypto via NitroModules (patched for JSC ArrayBuffer and randomFillSync fixes)
- Offline-first - MindooDB with local content-addressed storage