{"id":13656252,"url":"https://github.com/janeasystems/nodejs-mobile","last_synced_at":"2025-10-06T21:31:36.048Z","repository":{"id":37677354,"uuid":"101299372","full_name":"JaneaSystems/nodejs-mobile","owner":"JaneaSystems","description":"Full-fledged Node.js on Android and iOS","archived":false,"fork":true,"pushed_at":"2021-10-27T09:42:35.000Z","size":420812,"stargazers_count":2533,"open_issues_count":170,"forks_count":197,"subscribers_count":79,"default_branch":"mobile-master","last_synced_at":"2024-02-14T23:38:32.949Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://code.janeasystems.com/nodejs-mobile","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"nodejs/node-chakracore","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JaneaSystems.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null}},"created_at":"2017-08-24T13:43:56.000Z","updated_at":"2024-02-14T06:48:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/JaneaSystems/nodejs-mobile","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaneaSystems%2Fnodejs-mobile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaneaSystems%2Fnodejs-mobile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaneaSystems%2Fnodejs-mobile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaneaSystems%2Fnodejs-mobile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JaneaSystems","download_url":"https://codeload.github.com/JaneaSystems/nodejs-mobile/tar.gz/refs/heads/mobile-master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235552613,"owners_count":19008464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T04:00:55.018Z","updated_at":"2025-10-06T21:31:26.039Z","avatar_url":"https://github.com/JaneaSystems.png","language":"JavaScript","funding_links":[],"categories":["Active Deezloader branches"],"sub_categories":["Deezloader Android"],"readme":"[![Project Status: Unsupported – The project has reached a stable, usable state but the author(s) have ceased all work on it.](https://www.repostatus.org/badges/latest/unsupported.svg)](https://www.repostatus.org/#unsupported)\n\n:warning: The project is no longer being actively maintained by Janea Systems.  \nForks of the repos have been created on a dedicated Github org to allow community-driven development to continue:  \nhttps://github.com/nodejs-mobile\n\nNode.js for Mobile Apps\n====================================\n\nThis is the main repository for [Node.js for Mobile Apps](https://code.janeasystems.com/nodejs-mobile), a toolkit for integrating Node.js into mobile applications.\n\n## Resources for Newcomers\n* [Website](https://code.janeasystems.com/nodejs-mobile)\n* [Gitter channel](https://gitter.im/nodejs-mobile/community)\n* [Frequently Asked Questions](FAQ.md)\n\nThis is the central repository for reporting **all issues** related to the Node.js for Mobile Apps project, including issues pertaining to the React Native and Cordova plugins. \n\nThe core library source code is in this repo. If you are looking for the *source code* for the plugins, you can find it at:\n\n* [React Native plugin source repo](https://github.com/janeasystems/nodejs-mobile-react-native)\n* [Cordova plugin source repo](https://github.com/janeasystems/nodejs-mobile-cordova)\n\n\n## Project Goals\n\n1. To provide the fixes necessary to run Node.js on mobile operating systems.\n1. To investigate which features need to be added to Node.js in order to make it a useful tool for mobile app development.\n1. To diverge as little as possible from nodejs/node, while fulfilling goals (1) and (2).\n\n## Download\nBinaries for Android and iOS are available at https://github.com/janeasystems/nodejs-mobile/releases.\n\n## Documentation\nDocumentation can be found on the [project website](https://code.janeasystems.com/nodejs-mobile). Sample code is available in the [samples repo](https://github.com/janeasystems/nodejs-mobile-samples/).\n\n***Disclaimer:***  documentation found in this repository is currently unchanged from the parent repository and may only be applicable to upstream node.\n\n## Build Instructions\n\n### Prerequisites to build the Android library on Linux Ubuntu/Debian:\n\n#### Basic build tools:\n```sh\nsudo apt-get install -y build-essential git python\n```\n\n#### Install curl and unzip (needed to download the Android NDK):\n```sh\nsudo apt-get install -y curl unzip\n```\n\n#### Install Android NDK r21b for Linux:\nChoose a location where you want to install the Android NDK and run:\n```sh\ncurl https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip -o ndk.zip\nunzip ndk.zip\n```\nIt will create a `android-ndk-r21b` folder. Save that path for later.\n\n### Prerequisites to build the Android library on macOS:\n\n#### Git:\n\nRun `git` in a terminal window, it will show a prompt to install it if not already present.\nAs an alternative, installing one of these will install `git`:\n* Xcode, with the Command Line Tools.\n* [Homebrew](https://brew.sh/)\n* [Git-SCM](https://git-scm.com/download/mac)\n\n#### Install Android NDK r21b for macOS:\nChoose a location where you want to install the Android NDK and run:\n```sh\ncurl https://dl.google.com/android/repository/android-ndk-r21b-darwin-x86_64.zip -o ndk.zip\nunzip ndk.zip\n```\nIt will create a `android-ndk-r21b` folder. Save that path for later.\n\n### Building the Android library on Linux or macOS:\n\n#### 1) Clone this repo and check out the `mobile-master` branch:\n\n```sh\ngit clone https://github.com/janeasystems/nodejs-mobile\ncd nodejs-mobile\ngit checkout mobile-master\n```\n\n#### 2a) Using the Android helper script:\n\nThe `tools/android_build.sh` script takes as first argument the Android NDK path (in our case is `~/android-ndk-r21b`). The second argument is optional and is the target architecture, which can be one of the following: `arm`, `x86`, `arm64` or `x86_64`. If no target architecture is provided, it will build all available architectures.\nRun:\n\n```sh\n./tools/android_build.sh ~/android-ndk-r21b\n```\n\nWhen done, each built shared library will be placed in `out_android/$(ARCHITECTURE)/libnode.so`.\n\n#### 2b) Configure and build manually:\nRun the `android-configure` script to configure the build with the path to the downloaded NDK and the desired target architecture.\n\n```sh\nsource ./android-configure ../android-ndk-r21b arm\n```\n\nStart the build phase:\n```sh\nmake\n```\n\nThis will create the Android `armeabi-v7a` shared library in `out/Release/lib.target/libnode.so`.\n\n### Prerequisites to build the iOS .framework library on macOS:\n\n#### Xcode 11 with Command Line Tools\n\nInstall Xcode 11 or higher, from the App Store, and then install the Command Line Tools by running the following command:\n\n```sh\nxcode-select --install\n```\n\nThat installs `git`, as well.\n\n#### CMake\n\nTo install `CMake`, you can use a package installer like [Homebrew](https://brew.sh/).\n\nFirst, install `HomeBrew`, if you don't have it already.\n\n```sh\n/usr/bin/ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n```\n\nThen, use it to install `CMake`:\n\n```sh\nbrew install cmake\n```\n\n### Building the iOS library using CocoaPods:\n\nAdd this to your `Podfile`:\n\n```ruby\npod 'NodeMobile', :git =\u003e 'https://github.com/janeasystems/nodejs-mobile.git'\n```\n\n### Building the iOS .framework library on macOS:\n\n#### 1) Clone this repo and check out the `mobile-master` branch:\n\n```sh\ngit clone https://github.com/janeasystems/nodejs-mobile\ncd nodejs-mobile\ngit checkout mobile-master\n```\n\n#### 2) Run the helper script:\n\n```sh\n./tools/ios_framework_prepare.sh\n```\n\nThat will configure `gyp` to build Node.js and its dependencies as static libraries for iOS on the arm64 and x64 architectures, using the `v8` engine configured to start with JIT disabled. The script copies those libraries to `tools/ios-framework/bin/arm64` and `tools/ios-framework/bin/x64`, respectively. It also merges them into static libraries that contain strips for both architectures, which will be placed in `tools/ios-framework/bin` and used by the `tools/ios-framework/NodeMobile.xcodeproj` Xcode project.\n\nThe helper script builds the `tools/ios-framework/NodeMobile.xcodeproj` Xcode project into three frameworks:\n  - The framework to run on iOS devices: `out_ios/Release-iphoneos/NodeMobile.framework`\n  - The framework to run on the iOS simulator: `out_ios/Release-iphonesimulator/NodeMobile.framework`\n  - The universal framework, that runs on iOS devices and simulators: `out_ios/Release-universal/NodeMobile.framework`\n\nWhile the universal framework is useful for faster Application development, due to supporting both iOS devices and simulators, frameworks containing simulator strips will not be accepted on the App Store. Before trying to submit your application, it would be advisable to use the `Release-iphoneos/NodeMobile.framework` in your submission archive or strip the x64 slices from the universal framework's binaries before submitting.\n\n## Running tests\nPlease see the [TESTING.md](./doc_mobile/TESTING.md) file in the `doc_mobile` folder in this source distribution.\n\n## Contributing\nPlease see the [CONTRIBUTING](./doc_mobile/CONTRIBUTING.md) file in the `doc_mobile` folder in this source distribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaneasystems%2Fnodejs-mobile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaneasystems%2Fnodejs-mobile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaneasystems%2Fnodejs-mobile/lists"}