FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

feat: RN TurboModule -- threading + Fabric integration, rebuilt (supersedes #46) by DjDeveloperr · Pull Request #72 · NativeScript/runtimes · GitHub

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

Merged
DjDeveloperr merged 1 commit into
refactorfrom
rn-turbomodule
Aug 26, 2026
Merged

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

Conversation

DjDeveloperr commented Aug 20, 2026
edited
Loading

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 Bot commented Aug 20, 2026
edited
Loading

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: a644f59b-cfe5-43c2-9a07-90f3ea41e7e6

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 force-pushed the rn-turbomodule branch 4 times, most recently from e76dea6 to aa79c4d Compare August 23, 2026 06:39
DjDeveloperr merged commit f5f672e into refactor Aug 26, 2026
2 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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


Back | FazBrowse Home | New Git URL