realm / realm-js

Realm is a mobile database: an alternative to SQLite & key-value stores
https://realm.io
Apache License 2.0
5.79k stars 575 forks source link

Android support #3334

Closed tekkengreg closed 3 years ago

tekkengreg commented 4 years ago

Goals

Hello guys

I try to install realm module 10 rc2 on my android.

Are there any reasons too exclude android support ?

Thank you :grinning:

Expected Results

I expect to be installed on my device, and usable.

Actual Results

I have this error : Error: Unsupported sync platform 'android'

Steps to Reproduce

npm i realm@10.0.0-rc.2

Code Sample

Version of Realm and Tooling

RealmBot commented 4 years ago

➤ Lyubomir Blagoev commented:

What do you mean on your android? Could you elaborate. Please fill the full issue template it will help us better understand the issue you are having. 

cheers

tekkengreg commented 4 years ago

I am working on my samsung note 20 (with dex). With Termux app I tried to run npm I realm@10.0.0-rc.2 But i've got this : ` npm i realm@10.0.0-rc.2 npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated core-js@1.2.7: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3. npm WARN deprecated har-validator@5.1.5: this library is no longer supported

realm@10.0.0-rc.2 install /data/data/com.termux/files/home/node_modules/realm node-pre-gyp install --fallback-to-build -j 8 ${npm_config_arch:+--target_arch=${npm_config_arch}}

node-pre-gyp WARN Using request for node-pre-gyp https download node-pre-gyp WARN Tried to download(404): https://static.realm.io/node-pre-gyp/napi-v4/realm-v10.0.0-rc.2/realm-v10.0.0-rc.2-android-arm64.tar.gz node-pre-gyp WARN Pre-built binaries not found for realm@10.0.0-rc.2 and node@14.8.0 (node-v83 ABI, unknown) (falling back to source compile with node-gyp) make: Entering directory '/data/data/com.termux/files/home/node_modules/realm/build' CC(target) Release/obj.target/nothing/../node-addon-api/nothing.o TOUCH Release/obj.target/OpenSSL.stamp ACTION binding_gyp_vendored_realm_target_download_realm /data/data/com.termux/files/home/node_modules/realm/vendor/realm-android-arm64 TOUCH Release/obj.target/scripts.stamp /data/data/com.termux/files/home/node_modules/realm/scripts/download-realm.js:215 throw new Error(Unsupported sync platform '${options.platform}'); ^

Error: Unsupported sync platform 'android' at getSyncRequirements (/data/data/com.termux/files/home/node_modules/realm/scripts/download-realm.js:215:19) at Object. (/data/data/com.termux/files/home/node_modules/realm/scripts/download-realm.js:280:80) at Module._compile (internal/modules/cjs/loader.js:1251:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10) at Module.load (internal/modules/cjs/loader.js:1100:32) at Function.Module._load (internal/modules/cjs/loader.js:962:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47 make: [vendored-realm.target.mk:13: /data/data/com.termux/files/home/node_modules/realm/vendor/realm-android-arm64] Error 1 make: Waiting for unfinished jobs.... make: Leaving directory '/data/data/com.termux/files/home/node_modules/realm/build' `

blagoev commented 4 years ago

thanks for the information. Unfortunately, we don't support android as a development environment. You need to use Linux, Windows or MacOS

geragray commented 4 years ago

@grpetit would it be possible for you to describe a use case that you are trying to solve with Realm Node JS SDK on Android? Historically we have been thinking of node.js for desktop or server-side (and even introduced support for Rasberry Pi https://github.com/realm/realm-js/issues/2230) and React Native for Adnroid/iOS. Just trying to understand how to support you better.

tekkengreg commented 4 years ago

@geragray, I try to develop ReactJS app plugged on mongodb realm. I already develop some draft app on my phone and I would like to try out the new severless realm.

tekkengreg commented 4 years ago

Ho ho ho I just see realm-web module... seems to work on android \o/
I dunno what the difference between realm and realm-web, but this one is working.

I guess I can close the issue :)

kneth commented 4 years ago

dunno what the difference between realm and realm-web, but this one is working.

realm-web is a subset of realm - it doesn't have the database component.

velocitys3 commented 3 years ago

I have a use case wanting to compile/install realm with the database component & sync running Node.js using Termux on Android and ish on iOS. The install: npm install realm, provides the error mentioned above in regards to the unsupported platform

We have a large ecomm application running in Salesforce that we have surfaced as part of their opensource platform that runs on a minimal Node.js app (https://lwc.dev/), with an over 1GB product catalog (largest wine and liquor distributor in the US) syncing for offline-use using Realm on iPad/tablets is the requirement. Without re-writing our components for native SDK's, looking at running Node.js on all our salesperson's tablets. This is working minus the realm installation. Is what we are trying to do a possibility?

kneth commented 3 years ago

@velocitys3

Currently we only produce binaries for Linux (x86_64), MacOS (x86_64, M1) and Windows (x86 and x86_64) so I doubt it will work out of the box.

If you have a full development environment installed on the tablet (C++ compiler), npm will most likely try to build Realm for you.