Communication Layer
Also called JS-native interop
- Part of
- React Native Glossary
- Also known as
- JS-native interop
- Updated
What is Communication Layer in React Native?
The communication layer is everything that lets JavaScript talk to native platform code — historically the bridge, and today JSI, TurboModules and Codegen.
The communication layer is the machinery that carries calls between your JavaScript and the platform's native code — reading a file, opening the camera, or pushing a layout update.
Its pieces, in the order they arrived:
- The bridge — the legacy transport. Every call was serialised to JSON and queued asynchronously, so nothing could be read back synchronously.
- JSI — a C++ interface that lets JavaScript hold a direct reference to a native object and invoke it without serialisation.
- TurboModules — native modules built on JSI and loaded lazily, so startup no longer pays for modules the app never uses.
- Codegen — generates the C++, Java and Objective-C glue from TypeScript specs, so both sides agree on types at build time.
An EventEmitter sits alongside these for the reverse direction, letting native code push events up to JavaScript.
Newcomers meet this layer the first time a library needs npx expo prebuild or a native rebuild: that is native code entering the app, not just JavaScript.