Node-API is a C-based interface for native modules that works across JavaScript engines. Its stable ABI lets modules compiled against an earlier Node-API version keep working in newer runtimes without recompilation. The API covers more than 100 functions, and its current version is 10.
Hermes + Node API: A Match Made in Heaven
Speakers
Khalef Hosany and Vladimir Morozov, both from Microsoft in Seattle, explain how Node-API can bring stable native modules to React Native at React Universe Conf 2025.
Vladimir describes how Node-API functions work with an environment, JavaScript values, and status codes, with functions for errors and exceptions. Values live on a stack that is cleared after a native call, so modules use explicitly deleted global references to preserve them across calls. Modules can be written in C or languages that interoperate with C, including C++, Rust, and Go.
React Native for Windows adopted Node-API to support multiple JavaScript engines and native languages such as C and C++. The team began a JSI runtime implementation in 2021, added an implementation to its Hermes fork in 2022, and later began upstreaming it to Hermes. They ported Node.js tests and run them using a Node-like process with Hermes.
The Windows implementation currently wraps Node-API through JSI, with a goal of supporting both interfaces side by side. The team maps JSI versions to React Native versions because releases expose different JSI functions. This lets one Hermes DLL and JSI wrapper serve multiple React Native versions, including older apps.
The demos show a Node-API module running in Node.js and Hermes, with the same result, and demonstrate code in C and C++. Hosany says precompiled modules can work across React Native versions, and developers can use languages that bind to C. Reusing Node.js modules in React Native still needs more work, while using the latest Hermes is already supported in React Native for Windows.
Takeaways
- A stable ABI can reduce the need to rebuild native modules for each runtime version.
- Node-API offers a C-based interface that can be used from C, C++, Rust, Go, and other languages that interoperate with C.
- React Native for Windows uses a JSI wrapper around Node-API to support multiple React Native versions with one Hermes DLL.
- Node-API support is a step toward using Node.js modules in React Native, but that reuse is not yet complete.
- Teams can consult the Node.js test suite and adapt it to validate Node-API behavior in another runtime.
Mentioned in this talk
Search inside this talk
What was claimed 12
- works atVladimir Morozov works at
Microsoft“We're both joining you from Microsoft in Seattle.”
YouTube Unverified1 source· Talk
- works atKhalef Hosany works at
Microsoft“We're both joining you from Microsoft in Seattle.”
YouTube Unverified1 source· Talk
- integrates withNode-API integrates with React Native
“we could see it start working in React Native for Windows”
1:14inBuilding Node-API for React NativeYouTube Verified2 sources· Talk
- featureNode-API: Stable C-based APIs for native modules across supported runtime versions
“Node-API is a set of stable APIs that provide guarantees.”
YouTube Unverified1 source· Talk
- metricNode-API: 10; current version stated in the talk
“The current version is 10.”
YouTube Unverified1 source· Talk
- featureNode-API: Modules compiled against an earlier version can load in newer Node.js versions without recompilation
“A module compiled against version 8 can still be loaded in a newer version of Node.js.”
YouTube Unverified1 source· Talk
- role atVladimir Morozov is member of the Node-API group at Node-API
“That group meets once a week, and Vladimir is a member.”
YouTube Unverified1 source· Talk
- integrates with
Hermes Agent integrates with Node-API
“Vladimir introduced the first implementation in our Hermes fork for Windows.”
YouTube Unverified1 source· Talk
- integrates withReact Native for Windows integrates with Node-API
“To enable JSI to work with it, we built a JSI runtime implementation for Node-API.”
YouTube Unverified1 source· Talk
- feature
Callstack: sponsored work to enable Node-API for React Nativesponsored work to enable Node-API for React Native“In 2025, Callstack started sponsoring work to enable Node-API for React Native.”
YouTube Unverified1 source· Talk
- featureReact Native: Direct use of Node.js modules still needs more work
“Can you use Node.js modules in React Native? Not quite; that still needs some work.”
YouTube Unverified1 source· Talk
- useslatest version of Hermes
“The latest version of Hermes? Yes, we’re already doing this today in React Native for Windows.”
YouTube Unverified1 source· Talk





