Skip to content

feat: RN TurboModule -- threading + Fabric integration, rebuilt (supersedes #46) - #72

Open
DjDeveloperr wants to merge 1 commit into
refactorfrom
rn-turbomodule
Open

feat: RN TurboModule -- threading + Fabric integration, rebuilt (supersedes #46)#72
DjDeveloperr wants to merge 1 commit into
refactorfrom
rn-turbomodule

Conversation

@DjDeveloperr

@DjDeveloperr DjDeveloperr commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Rebuilds the React Native TurboModule and Fabric integration around generic native-component contracts. The runtime now exposes one component definition API for native view creation, props, events, commands, layout, child mounting, controller containment, and teardown.

  • installs the NativeScript interop bridge directly in the Worklets UI runtime
  • keeps UIKit work on the main queue without synchronous cross-runtime calls
  • scopes scheduled work to the component lifecycle so stale callbacks are discarded after invalidation
  • registers generic Fabric component views and descriptors through the runtime gateway
  • adds native controller-containment and descendant-query operations for atomic UIKit work
  • configures Metro and the NativeScript plugin for production Bundle Mode with the required Worklets transforms

Architecture

defineNativeComponent owns the typed JavaScript contract. Fabric delegates native lifecycle hooks to the UI runtime, while the Objective-C++ layer handles mounting transactions, layout metrics, events, commands, controller ownership, and runtime invalidation. Component implementations remain outside the runtime package.

The old specialized UIKit host surface and its process-wide view swizzling are removed. This also removes the legacy registries, batch walkers, point-fix RPCs, frame-loop hook, and specialized controller/view APIs.

Verification

  • config-plugin and CLI unit suites
  • Release Bundle Mode M1 acceptance coverage for lifecycle hooks, main-queue execution, mounting transactions, layout decline, content-size propagation, commands, reentrancy, and invalidation
  • generic iOS Simulator SDK builds
  • repository CI

Known limitation

Completion blocks declared only by Objective-C protocols still require an explicit interop.Block signature until #71 lands. Class-declared completion parameters accept ordinary closures.

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f846d52d-abfd-45da-b69f-2bb6197d87c8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

DjDeveloperr added a commit that referenced this pull request Aug 20, 2026
Matches @nativescript/react-native's existing peerDependenciesMeta
convention. Without it, npm's auto-peer-install for
@nativescript/react-native-screens pulled in react-native-worklets@0.11.4
(peer react-native 0.83-0.86), conflicting with the workspace's real
react-native@0.79.5 (pinned transitively via react-native-node-api) and
breaking `npm install` at the repo root -- this is what CI's build job
runs, and it failed on PR #72 for exactly this reason.
DjDeveloperr added a commit that referenced this pull request Aug 20, 2026
Matches @nativescript/react-native's existing peerDependenciesMeta
convention. Without it, npm's auto-peer-install for
@nativescript/react-native-screens pulled in react-native-worklets@0.11.4
(peer react-native 0.83-0.86), conflicting with the workspace's real
react-native@0.79.5 (pinned transitively via react-native-node-api) and
breaking `npm install` at the repo root -- this is what CI's build job
runs, and it failed on PR #72 for exactly this reason.
@DjDeveloperr
DjDeveloperr force-pushed the rn-turbomodule branch 3 times, most recently from 39d1565 to e76dea6 Compare August 22, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant