{"id":37017086,"url":"https://github.com/paypal/manticore-native","last_synced_at":"2026-01-14T01:57:22.073Z","repository":{"id":42215233,"uuid":"54785297","full_name":"paypal/manticore-native","owner":"paypal","description":"A runtime to expose Javascript classes, logic and code to native components on Mac/PC/Phones/RPis","archived":true,"fork":false,"pushed_at":"2018-07-03T15:02:41.000Z","size":19471,"stargazers_count":16,"open_issues_count":20,"forks_count":21,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-04-13T19:27:05.683Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paypal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-26T15:28:06.000Z","updated_at":"2023-01-28T13:39:04.000Z","dependencies_parsed_at":"2022-07-10T20:48:48.451Z","dependency_job_id":null,"html_url":"https://github.com/paypal/manticore-native","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/paypal/manticore-native","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paypal%2Fmanticore-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paypal%2Fmanticore-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paypal%2Fmanticore-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paypal%2Fmanticore-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paypal","download_url":"https://codeload.github.com/paypal/manticore-native/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paypal%2Fmanticore-native/sbom","scorecard":{"id":724516,"data":{"date":"2025-08-11","repo":{"name":"github.com/paypal/manticore-native","commit":"e26422100ea04816e637a10b04e0ebde25ec3159"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.9,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 5/6 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":3,"reason":"binaries present in source code","details":["Warn: binary detected: runtime/android/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: runtime/android/manticore/testLibs/j2v8_linux_x86_64-3.1.6.jar:1","Warn: binary detected: runtime/android/manticore/testLibs/j2v8_macosx_x86_64-3.1.6.jar:1","Warn: binary detected: runtime/win/Manticore.Desktop/ClearScriptV8-32.dll:1","Warn: binary detected: runtime/win/Manticore.Desktop/ClearScriptV8-64.dll:1","Warn: binary detected: runtime/win/Manticore.Desktop/v8-ia32.dll:1","Warn: binary detected: runtime/win/Manticore.Desktop/v8-x64.dll:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: npmCommand not pinned by hash: examples/hello-world/src/ios/build.sh:3","Warn: npmCommand not pinned by hash: scripts/ci/travis.sh:10","Warn: npmCommand not pinned by hash: scripts/ci/travis.sh:13","Warn: npmCommand not pinned by hash: scripts/ci/travis.sh:45","Warn: npmCommand not pinned by hash: scripts/ci/travis.sh:48","Info:   0 out of   5 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T12:22:53.335Z","repository_id":42215233,"created_at":"2025-08-22T12:22:53.336Z","updated_at":"2025-08-22T12:22:53.336Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"ssl_error","status_checked_at":"2026-01-14T01:40:32.775Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-01-14T01:57:21.424Z","updated_at":"2026-01-14T01:57:22.066Z","avatar_url":"https://github.com/paypal.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Manticore [![Gitter](https://badges.gitter.im/paypal/manticore-native.svg)](https://gitter.im/paypal/manticore-native)\n=========\n\nA cross platform Javascript runtime environment, built specifically for native mobile development and enabled by code generation.\n\n* Bidirectional invocation - JavaScript calling native callbacks and vice versa\n* True object portability across the native boundary - not just primitive types, and no \"frozen\" types requiring synchronization\n* Asynchronous Javascript methods (e.g. Promises) exposed in native-friendly ways\n* The ability to completely hide the fact that it's \"Javascript all the way down\" from your code consumers\n\n\n### Code Portability\n\nIf you wrote a single library in JavaScript, here are all the platforms where Manticore could help you compile it into native code:\n\nPlatform | Version                   | Native | Distro    | Version | CI Status |\n-------- | -------                   | ------ |  ------   | ------- |:------    |\niOS      | 7.0+                      | Obj C  | CocoaPods | none    | [![Build Status](https://badges.herokuapp.com/travis/paypal/manticore-native?env=BUILD_ITEM=objc\u0026label=build\u0026branch=master)](https://travis-ci.org/paypal/manticore-native)\nMacOS    | 10.9+                     | Obj C  | CocoaPods | none    | [![Build Status](https://badges.herokuapp.com/travis/paypal/manticore-native?env=BUILD_ITEM=objc\u0026label=build\u0026branch=master)](https://travis-ci.org/paypal/manticore-native)\nAndroid  | API 19+                   | Java   | JCenter   | none    | [![Build Status](https://badges.herokuapp.com/travis/paypal/manticore-native?env=BUILD_ITEM=java\u0026label=build\u0026branch=master)](https://travis-ci.org/paypal/manticore-native)\nWindows  | XP (.Net4)                | C#     | NuGet     | none    | [![Build status](https://ci.appveyor.com/api/projects/status/sm23ige74y836v48?svg=true)](https://ci.appveyor.com/project/ifreecarve/manticore-native/branch/master)\nWindows  | 7,8,Vista (v8  )          | C#     | NuGet     | none    | [![Build status](https://ci.appveyor.com/api/projects/status/sm23ige74y836v48?svg=true)](https://ci.appveyor.com/project/ifreecarve/manticore-native/branch/master)\nWindows  | 8.1, 8.1 Phone, 10 (jint) | C#     | NuGet     | none    | [CI not running](https://github.com/paypal/manticore-native/issues/14)\n_codegen_| 0.12                      | JS     | npm       | none    | [![Build Status](https://badges.herokuapp.com/travis/paypal/manticore-native?env=BUILD_ITEM=node\u0026label=build\u0026branch=master)](https://travis-ci.org/paypal/manticore-native)\n\n\nHow It Works\n============\n\n### Pre-Compilation: Generating Native Classes\n\nThe `manticore-gen` script generates native interface shims in a target language\n(Objective-C, Java, and C# currently) -- code to interact with the proper Manticore runtime and Javascript engine for that\nplatform.  The generator reads class and type information from the JSDoc comments in the JavaScript, stores it as JSON, and\nuses DustJS templates to render the native code.\n\nAs such, there is a different template for each language, which you can customize or replace.\n\nFor more information, see the [README in lib/manticore-gen](lib/manticore-gen/README.md).\n\n\n### Pre-Compilation: Generating Runtime JavaScript\n\nManticore provides scripts to combine all the source JavaScript code (and its dependencies) into one large file,\nusing (among other things) `browserify` and `folderify`.  This is the implementation code, for which the\nnative shims are the interface.\n\nFor more information, see the [README in lib/mantify](lib/mantify/README.md).\n\n\n### Initialization: Launching Manticore-Powered Code\n\nManticore launches a native JavaScript environment and loads the unified JavaScript file into it.\n\nFor more information, see the [runtime documentation](runtime/) or complete [example projects](examples/).\n\n\n### Runtime: Crossing the Boundary\n\nThe Manticore runtime provides the boilerplate code that's used for each method and field of the underlying JavaScript:\nnative calls that dive into the JavaScript layer and convert types\nback and forth. For primitive types this conversion is \"simple.\" For other Manticore or non-native types, the objects\nreturned are still the same thin shims over JavaScript -- where all calls to properties and methods will be sent. This means\nthere is no \"synchronization\" of values or events or anything - **there is only one truth, and it lives in the JavaScript environment**.\n\n\nLicense\n=======\n\nManticore (`manticore-native`) is available under the Apache 2.0 License.  See [LICENSE.txt](LICENSE.txt).\n\n\nContributing\n============\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n\nIsn't There a Project That Already Does This?\n=============================================\n\nIf you're referring to [Apache Cordova](https://cordova.apache.org/), [Adobe PhoneGap](http://phonegap.com/),\n[React Native](https://facebook.github.io/react-native/), or [SWIG](http://www.swig.org/), see [Comparisons.md](Comparisons.md),\nsummarized in this table:\n\n|                                  |Cordova / PhoneGap | React Native |   SWIG  |  Manticore |\n|:-------------------------------  |:-----------------:|:------------:|:-------:|:----------:|\n|TL;DR                             |Webviews everywhere | Learn once, run \"anywhere\" | C++ wrappers everywhere| JS wrappers everywhere |\n|You write common code in          |HTML / CSS / JS | JSX / JS | C++ | JS / ES6 |\n|Hardware access provided by       |Plugins | Plugins | (Native) | (Native) |\n|`main()`defined in                |JS | JSX / JS | (Native) | (Native) |\n|UI managed by                     |Cordova library | OS-specific modules | (Native) | (Native) |\n|Runs on iOS                       | Yes | Yes |     | Yes |\n|Runs on MacOS                     |     |     | Yes | Yes |\n|Runs on Android                   | Yes | Yes | Yes | Yes |\n|Runs on Windows Phone             | Yes |     | Yes | Yes |\n|Runs on Windows XP and up         |     |     | Yes | Yes |\n|Runs in web browsers              | Yes |     |     | Yes |\n|Runs on Windows Phone (8.1)       |     |     | Yes | Yes |\n|Runs on ChromeOS / Chrome Apps    |     |     |  ?  | Yes |\n|Runs in Node.js                   |     |     | Yes | Yes |\n|Compatible with Cordova / PhoneGap| -   | No  | ?   | Yes |\n|Compatible with React Native      | No  | -   | ?   | Yes |\n\n\nHelp\n====\n\nWhere-to-post summary:\n\n* How do I? -- [StackExchange](http://stackoverflow.com/questions/ask?tags=manticore-native)\n* I got this error, why? -- [StackExchange](http://stackoverflow.com/questions/ask?tags=manticore-native)\n* I got this error and I'm sure it's a bug -- [file an issue](https://github.com/paypal/manticore-native/issues)\n* I have an idea/request -- [file an issue](https://github.com/paypal/manticore-native/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaypal%2Fmanticore-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaypal%2Fmanticore-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaypal%2Fmanticore-native/lists"}