# System map — react/react-native

> Canonical page: https://codevetter.com/unpack/react-native/system-map

# System map — react/react-native

Scanned commit b7c0e4986a0242cdd47afd002f3e712e80914c3c (2026-09-22). Generated by codevetter codevetter 1.12.0 on 2026-09-22.

Yarn v1 workspaces monorepo rooted at package.json (@react-native/monorepo). The flagship artifact is packages/react-native, which ships the JS public API (index.js lazy getters), the C++ core (ReactCommon), the Android runtime (ReactAndroid, Gradle), and the Apple runtime (React + ReactApple, CocoaPods podspecs + SwiftPM Package.swift). Tooling packages around it provide the dev server CLI (@react-native/community-cli-plugin), CDP inspector proxy (@react-native/dev-middleware), Metro defaults (@react-native/metro-config), codegen (@react-native/codegen), and the Gradle plugin. Repo-local test surfaces live in packages/rn-tester, private/helloworld, and private/react-native-fantom. CI is orchestrated by .github/workflows/test-all.yml.
- Root package.json is private workspace root '@react-native/monorepo' v1000.0.0, pinned to yarn@1.22.22, with workspaces packages/*, packages/react-native-test-library/* and private/* (excluding private/helloworld). — [package.json#L1-57](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/package.json#L1-L57)
- The published `react-native` package lives in packages/react-native: bin 'react-native' -> cli.js, main ./index.js, and an exports map exposing ./setup-env, ./react-private-interface, ./unstable-internals-do-not-use, ./asset-registry, deep ./Libraries/* imports, and conditional 'types' -> ./types_generated/index.d.ts. — [packages/react-native/package.json#L26-64](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/package.json#L26-L64)
- JavaScript source is split between the legacy location packages/react-native/Libraries and the newer packages/react-native/src/private; AGENTS.md documents the gradual migration, and index.js imports from both trees. — [AGENTS.md](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/AGENTS.md) [packages/react-native/index.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js) [packages/react-native/src/private/setup/setUpDefaultReactNativeEnvironment.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/src/private/setup/setUpDefaultReactNativeEnvironment.js)
- The shared C++ core lives in packages/react-native/ReactCommon and includes react/renderer (Fabric: uimanager, mounting, scheduler, runtimescheduler, components, dom), react/nativemodule (TurboModules), jsi, jsiexecutor, hermes, yoga (layout engine), jsinspector-modern (CDP stack), callinvoker and cxxreact. — [packages/react-native/ReactCommon](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/ReactCommon) [packages/react-native/ReactCommon/react/renderer](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/ReactCommon/react/renderer) [packages/react-native/ReactCommon/jsinspector-modern](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/ReactCommon/jsinspector-modern) [__docs__/README.md#L40-71](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/__docs__/README.md#L40-L71)
- The Android runtime is packages/react-native/ReactAndroid (Kotlin/Java/JNI): bridgeless entry is com.facebook.react.runtime.ReactHostImpl (manages a ReactInstance with Bolts Tasks); the legacy ReactNativeHost->ReactInstanceManager path still exists but is @Deprecated and logged as LegacyArchitecture. — [packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt#L86-120](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt#L86-L120) [packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.kt#L34-60](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.kt#L34-L60) [packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java#L87-100](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java#L87-L100)
- The iOS runtime is packages/react-native/React and ReactApple (Objective-C++/Swift); RCTReactNativeFactory is the modern factory entry (initWithDelegate:releaseLevel: sets feature flags, creates RCTRootViewFactory, installs the third-party Fabric components provider), with RCTAppDelegate/RCTDefaultReactNativeFactoryDelegate as app-level glue. — [packages/react-native/Libraries/AppDelegate/RCTReactNativeFactory.mm#L72-100](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/AppDelegate/RCTReactNativeFactory.mm#L72-L100) [packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm) [packages/react-native/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm)
- iOS distribution is via CocoaPods podspecs (React.podspec, React-Core.podspec, React-Core-prebuilt.podspec, React-Fabric.podspec) plus third-party-podspecs, and SwiftPM via packages/react-native/Package.swift with scripts under scripts/spm. — [packages/react-native/React.podspec](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/React.podspec) [packages/react-native/React-Core.podspec](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/React-Core.podspec) [packages/react-native/React-Core-prebuilt.podspec](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/React-Core-prebuilt.podspec) [packages/react-native/Package.swift](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Package.swift) [packages/react-native/third-party-podspecs](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/third-party-podspecs)
- Android build is Gradle: root build.gradle.kts/settings.gradle.kts plus packages/gradle-plugin (react-native-gradle-plugin with tasks like GenerateCodegenArtifactsTask, GenerateCodegenSchemaTask, BundleHermesCTask, and a settings-plugin ReactSettingsPlugin). — [build.gradle.kts](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/build.gradle.kts) [settings.gradle.kts](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/settings.gradle.kts) [packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/GenerateCodegenArtifactsTask.kt](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/GenerateCodegenArtifactsTask.kt) [packages/gradle-plugin/settings-plugin/src/main/kotlin/com/facebook/react/ReactSettingsPlugin.kt](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/gradle-plugin/settings-plugin/src/main/kotlin/com/facebook/react/ReactSettingsPlugin.kt)
- The dev-toolchain packages are @react-native/community-cli-plugin (start/bundle/codegen/spm commands), @react-native/dev-middleware (createDevMiddleware + InspectorProxy CDP WebSocket proxy), @react-native/metro-config (getDefaultConfig), @react-native/react-native-babel-preset / babel-transformer, and @react-native/debugger-frontend + @react-native/debugger-shell for React Native DevTools. — [packages/community-cli-plugin/src/index.flow.js#L11-19](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/community-cli-plugin/src/index.flow.js#L11-L19) [packages/dev-middleware/src/createDevMiddleware.js#L87-146](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/dev-middleware/src/createDevMiddleware.js#L87-L146) [packages/metro-config/src/index.flow.js#L54-105](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/metro-config/src/index.flow.js#L54-L105) [packages/debugger-frontend/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/debugger-frontend/package.json) [packages/debugger-shell/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/debugger-shell/package.json)
- Repo-facing apps and runners: packages/rn-tester ('@react-native/tester' — RNTester showcase app with Podfile, RNTesterUnitTests, IntegrationTests), private/helloworld (minimal app, excluded from workspaces), and private/react-native-fantom (headless Hermes/Fabric test runner). — [packages/rn-tester/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/rn-tester/package.json) [packages/rn-tester/README.md](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/rn-tester/README.md) [private/helloworld/index.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/private/helloworld/index.js) [private/react-native-fantom/__docs__/README.md#L17-60](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/private/react-native-fantom/__docs__/README.md#L17-L60)
- Primary commands from repo root: yarn test (jest), yarn fantom (scripts/fantom.sh), yarn lint (eslint --max-warnings 0), yarn flow-check, yarn format[-lang], yarn build (scripts/build/build.js compiles packages' src->dist via Babel + flow-api-translator), yarn build-android (./gradlew :packages:react-native:ReactAndroid:build), yarn test-ios (scripts/objc-test.sh). — [package.json#L7-51](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/package.json#L7-L51) [scripts/build/build.js#L44-70](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/scripts/build/build.js#L44-L70) [scripts/fantom.sh](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/scripts/fantom.sh) [scripts/objc-test.sh](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/scripts/objc-test.sh)
- Release machinery lives in scripts/releases (set-version.js, prepare-ios-prebuilds.js, dotslash asset upload) and GitHub workflows publish-npm.yml / create-release.yml; test-all.yml's build_npm_package job produces the tarball gating publish. — [scripts/releases/set-version.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/scripts/releases/set-version.js) [.github/workflows/publish-npm.yml](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/.github/workflows/publish-npm.yml) [.github/workflows/create-release.yml](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/.github/workflows/create-release.yml) [.github/workflows/test-all.yml#L409-414](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/.github/workflows/test-all.yml#L409-L414)
- Public API surface is snapshotted in three places: ReactNativeApi.d.ts (generated TS types snapshot), packages/react-native/ReactAndroid/api/ReactAndroid.api (Kotlin public API), and scripts/cxx-api/api-snapshots (C++ API parsed by python -m scripts.cxx-api.parser). — [packages/react-native/ReactNativeApi.d.ts](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/ReactNativeApi.d.ts) [packages/react-native/ReactAndroid/api/ReactAndroid.api](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/ReactAndroid/api/ReactAndroid.api) [scripts/cxx-api](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/scripts/cxx-api) [package.json#L13-14](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/package.json#L13-L14)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
