Historically our library has always been bridgeless, in the sense that we never really used the bridge to communicate from JS and instead relied on internal APIs to get a pointer to the JS runtime and expose our C++ library code through JS by constructing JS objects and functions via JSC and later JSI calls.
We did migrate the way we load our native code on Android to use a TurboModule, but the mechanism we use to initialize our native binding on iOS is still a hack and rely on the bridge. Since React Native 0.74.0 enables bridgeless by default when the new architecture is enabled, this refactor is overdue.
Historically our library has always been bridgeless, in the sense that we never really used the bridge to communicate from JS and instead relied on internal APIs to get a pointer to the JS runtime and expose our C++ library code through JS by constructing JS objects and functions via JSC and later JSI calls.
We did migrate the way we load our native code on Android to use a TurboModule, but the mechanism we use to initialize our native binding on iOS is still a hack and rely on the bridge. Since React Native 0.74.0 enables bridgeless by default when the new architecture is enabled, this refactor is overdue.
Relevant documentation: