MCPcopy Index your code
hub / github.com/OpenNative/open-native

github.com/OpenNative/open-native @v2.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.0 ↗ · + Follow
3,786 symbols 8,793 edges 340 files 294 documented · 8%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img alt="open native logo" width="400" src="https://github.com/OpenNative/open-native/raw/v2.1.0/readme-img/open-native-logo.svg">

We all want to build apps in a way that's approachable to us, regardless of the target platform. Projects like React Native, Flutter, Capacitor, and NativeScript enable us to build native (e.g. iOS and Android) apps using alternative idioms such as JavaScript, Web tech, or platform-agnostic UI.

Each of these projects has a way to map platform APIs into their idiom (e.g. React Native has "native modules"), but none are completely mutually compatible. That is to say, a React Native native module cannot be used in a Flutter app as-is, and vice versa. This situation has led to a great amount of duplicated effort, and an isolation of communities.

Open Native is the long overdue Rosetta Stone that allows native modules to be used cross-ecosystem. It handles all the necessary autolinking, type marshalling and API-binding to allow you to choose the highest quality native module for your project, no matter what ecosystem it comes from.

For our first integration, we've enabled NativeScript to use React Native native modules the same way one would use them in React Native.

Getting Started

Head over to the installation guide to learn how you can integrate Open Native in your NativeScript app.

Links

I want to contribute

That is great news! There is a lot happening at a very fast pace in this library right now. Every little help is precious. You can contribute in many ways:

  • If you have suggestion or idea you want to discuss, open an issue.
  • Open an issue if you want to make a pull request, and tell me what you want to improve or add so we can discuss about it.

Contributors

Thanks to

  • Osei Fortune: For his expert help with the NativeScript Android runtime.
  • Eduardo Speroni: For his expert help with v8 as we take on JSI.
  • The NativeScript Community: For being awesome day after day. It's hard to name everyone who helped us and encouraged us to accomplish this.
  • React Native: We both have a background in React Native and were able to learn a lot from it. This wouldn't have been possible without React Native and the communities around it.

MIT License

Extension points exported contracts — how you extend this code

Dynamic (Interface)
Type representing a piece of data with unknown runtime type. Useful for allowing javascript to pass one of multiple type [6 …
packages/core/react-android/react/src/main/java/com/facebook/react/bridge/Dynamic.java
NativeScriptWebViewBaseInterface (Interface)
(no doc)
packages/webview/common.ts
ReactPackage (Interface)
Main interface for providing additional capabilities to the catalyst framework by couple of different means: <li [5 implementers]
packages/core/react-android/react/src/main/java/com/facebook/react/ReactPackage.java
NativeEventData (Interface)
(no doc)
packages/webview/index.ts
RCTInvalidating (Interface)
(no doc) [7 implementers]
packages/core/typings/ios/objc!React.d.ts
WritableMap (Interface)
Interface for a mutable map. Used to pass arguments from Java to JS. [4 implementers]
packages/core/react-android/react/src/main/java/com/facebook/react/bridge/WritableMap.java
WritableArray (Interface)
Interface for a mutable array. Used to pass arguments from Java to JS. [4 implementers]
packages/core/react-android/react/src/main/java/com/facebook/react/bridge/WritableArray.java

Core symbols most depended-on inside this repo

t
called by 723
docs/assets/mermaid.min.53c6b734599409e2.js
node
called by 267
docs/assets/mermaid.min.53c6b734599409e2.js
$
called by 210
docs/assets/mermaid.min.53c6b734599409e2.js
call
called by 193
packages/core/platforms/ios/lib_common/jsi/jsi-inl.h
begin
called by 172
packages/core/platforms/ios/lib_fblazyvector/FBLazyVector.h
yt
called by 129
docs/assets/mermaid.min.53c6b734599409e2.js
vt
called by 120
docs/assets/mermaid.min.53c6b734599409e2.js
insert
called by 103
docs/assets/mermaid.min.53c6b734599409e2.js

Shape

Function 1,930
Method 1,201
Class 562
Interface 79
Enum 14

Languages

TypeScript66%
Java25%
C++9%
Kotlin1%

Modules by API surface

docs/assets/mermaid.min.53c6b734599409e2.js1,819 symbols
packages/core/typings/android/android.d.ts247 symbols
packages/core/platforms/ios/lib_spec/FBReactNativeSpec.h158 symbols
packages/core/typings/ios/objc!React.d.ts108 symbols
packages/core/platforms/ios/lib_common/jsi/jsi.h75 symbols
packages/core/react-android/react/src/main/java/com/facebook/react/bridge/ReactContext.java43 symbols
packages/core/react-android/react/src/main/java/com/facebook/react/bridge/ReadableNativeMap.java31 symbols
packages/core/react-android/react/src/main/java/com/facebook/react/bridge/JavaOnlyMap.java31 symbols
packages/core/src/ios/viewmanagers.ts28 symbols
packages/core/react-android/react/src/main/java/com/facebook/react/bridge/JavaOnlyArray.java26 symbols
packages/core/platforms/ios/lib_common/jsi/jsi-inl.h25 symbols
packages/core/src/android/viewmanagers.ts24 symbols

For agents

$ claude mcp add open-native \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact