What problem does it solve?
JSI provides a direct interface for native C++ code to interact with the JavaScript engine in React Native, enabling reading and writing JS values, calling JS functions, and exposing C++ objects to JS without going through the old bridge.
Core Features & Use Cases
- Access and manipulate JS values from C++ using jsi::Value, jsi::Object, and related types.
- Create HostFunction and HostObject bindings to expose native functionality to JavaScript and to implement dynamic object shapes from C++.
- Call JS from native threads safely using CallInvoker, and construct promises or other JS objects from C++.
- Use PropNameID optimization, Scope for temporary values, and NativeState / WeakObject for lifecycle control.
Quick Start
Install JSI bindings during module initialization and expose a minimal HostFunction on the global object, then invoke it from JavaScript to verify end-to-end binding.