# Feature catalog — react/react-native

> Canonical page: https://codevetter.com/unpack/react-native/feature-catalog

# Feature catalog — react/react-native

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

User-facing surface = the react-native package's JS API (components + imperative APIs + hooks), the `react-native` CLI commands (start/bundle/codegen/spm via community-cli-plugin), the dev-middleware debugging endpoints, Web-platform APIs (observers, performance), and the published support packages (jest-preset, eslint configs, babel preset, metro-config). Deprecated APIs are still exported behind warnOnce() warnings; several experimental APIs ship under unstable_/experimental_ prefixes.
- Core components exported lazily via getters in index.js: View, Text, TextInput, Image, ScrollView, FlatList, SectionList, VirtualizedList, VirtualizedSectionList, Modal, Pressable, TouchableHighlight/NativeFeedback/Opacity/WithoutFeedback, Switch, RefreshControl, StatusBar, KeyboardAvoidingView, Button, ActivityIndicator. — [packages/react-native/index.js#L32-211](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L32-L211) [packages/react-native/Libraries/Components/View/View.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/Components/View/View.js) [packages/react-native/Libraries/Lists/VirtualizedList.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/Lists/VirtualizedList.js)
- Imperative/manager APIs exported: AppRegistry, AppState, Animated, Appearance, BackHandler, DeviceEventEmitter, DeviceInfo, DevMenu, DevSettings, Dimensions, Keyboard, LayoutAnimation, Linking, LogBox, NativeAppEventEmitter, NativeComponentRegistry, NativeEventEmitter, NativeModules, Networking, PanResponder, PermissionsAndroid, PixelRatio, Platform, Settings, Share, StyleSheet, Systrace, ToastAndroid, TurboModuleRegistry, UIManager, Vibration, plus codegenNativeCommands/codegenNativeComponent/requireNativeComponent helpers. — [packages/react-native/index.js#L212-414](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L212-L414)
- Deprecated-but-still-exported APIs emit warnOnce() on first access: DrawerLayoutAndroid, ImageBackground, SafeAreaView, InputAccessoryView, ProgressBarAndroid, Clipboard, PushNotificationIOS, UTFSequence — each message points at the community package that replaces it. — [packages/react-native/index.js#L41-133](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L41-L133) [packages/react-native/index.js#L243-338](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L243-L338) [packages/react-native/index.js#L396-405](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L396-L405)
- InteractionManager was removed from core: in __DEV__ a definedProperty getter on the export throws an invariant directing users to requestIdleCallback. — [packages/react-native/index.js#L431-447](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L431-L447)
- Experimental exports ship behind unstable_/experimental_ prefixes: unstable_VirtualView, unstable_VirtualArray, unstable_createVirtualCollectionView, unstable_VirtualColumn/Row/Generators, unstable_NativeText, unstable_NativeView, unstable_TextAncestorContext, experimental_LayoutConformance, unstable_batchedUpdates. — [packages/react-native/index.js#L91-103](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L91-L103) [packages/react-native/index.js#L180-210](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L180-L210) [packages/react-native/index.js#L375-377](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L375-L377)
- Hooks exported: useAnimatedValue, useAnimatedValueXY, useAnimatedColor, useColorScheme, usePressability, useWindowDimensions. — [packages/react-native/index.js#L378-395](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/index.js#L378-L395)
- CLI commands come from @react-native/community-cli-plugin: 'start' (dev server: --port/--host/--https/--key/--cert/--watchFolders/--reset-cache/--no-interactive/--client-logs), 'bundle' (--entry-file/--platform/--dev/--minify/--bundle-output/--sourcemap-output/--assets-dest/--asset-catalog-dest/--unstable-transform-profile), 'codegen' (--path/--platform/--outputPath/--source), and 'spm'. — [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/community-cli-plugin/src/commands/start.js#L16-105](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/community-cli-plugin/src/commands/start.js#L16-L105) [packages/community-cli-plugin/src/commands/bundle/index.js#L26-132](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/community-cli-plugin/src/commands/bundle/index.js#L26-L132) [packages/community-cli-plugin/src/commands/codegen.js#L20-60](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/community-cli-plugin/src/commands/codegen.js#L20-L60)
- Dev middleware mounts '/open-debugger' (openDebuggerMiddleware), serves the React Native DevTools frontend statically at '/debugger-frontend' from @react-native/debugger-frontend, and forwards everything else to InspectorProxy which owns WebSocket endpoints '/inspector/device' and '/inspector/debug' for CDP traffic. — [packages/dev-middleware/src/createDevMiddleware.js#L115-146](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/dev-middleware/src/createDevMiddleware.js#L115-L146) [packages/dev-middleware/src/inspector-proxy/InspectorProxy.js#L42-43](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js#L42-L43) [packages/dev-middleware/src/inspector-proxy/InspectorProxy.js#L233-238](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js#L233-L238)
- Web-platform APIs are implemented under src/private/webapis (IntersectionObserver, MutationObserver, ResizeObserver, performance) and installed at startup only when the corresponding ReactNativeFeatureFlags accessor returns true (enableIntersectionObserverByDefault/enableMutationObserverByDefault/enableResizeObserverByDefault). — [packages/react-native/src/private/setup/setUpDefaultReactNativeEnvironment.js#L45-62](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/src/private/setup/setUpDefaultReactNativeEnvironment.js#L45-L62) [packages/react-native/src/private/setup/setUpIntersectionObserver.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/src/private/setup/setUpIntersectionObserver.js) [packages/react-native/src/private/setup/setUpMutationObserver.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/src/private/setup/setUpMutationObserver.js) [packages/react-native/src/private/setup/setUpResizeObserver.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/src/private/setup/setUpResizeObserver.js) [packages/react-native/src/private/webapis](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/src/private/webapis)
- Networking surface: setUpXHR installs fetch/XMLHttpRequest polyfills at init; RCTNetworking is the native HTTP module; WebSocket has its own module; whatwg-fetch and ws are runtime dependencies of the react-native package. — [packages/react-native/Libraries/Core/setUpXHR.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/Core/setUpXHR.js) [packages/react-native/Libraries/Network/RCTNetworking.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/Network/RCTNetworking.js) [packages/react-native/package.json#L180-182](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/package.json#L180-L182)
- Developer-experience features: LogBox (installed in DEV via LogBox.install() during env setup), DevMenu/DevSettings native-backed modules, HMRClient for Fast Refresh, and React DevTools wiring via setUpReactDevTools and react-devtools-core dependency. — [packages/react-native/src/private/setup/setUpDefaultReactNativeEnvironment.js#L27-41](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/src/private/setup/setUpDefaultReactNativeEnvironment.js#L27-L41) [packages/react-native/Libraries/LogBox/LogBox.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/LogBox/LogBox.js) [packages/react-native/Libraries/Utilities/HMRClient.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/Libraries/Utilities/HMRClient.js) [packages/react-native/package.json#L173-174](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native/package.json#L173-L174)
- Consumer-facing support packages published from the monorepo: @react-native/jest-preset, @react-native/eslint-config + eslint-plugin-react-native + eslint-plugin-specs, @react-native/metro-config, @react-native/babel-preset + babel-transformer, @react-native/normalize-color(s), @react-native/polyfills, @react-native/assets-registry/asset-utils, @react-native/virtualized-lists, @react-native/typescript-config. — [packages/jest-preset/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/jest-preset/package.json) [packages/eslint-plugin-react-native/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/eslint-plugin-react-native/package.json) [packages/eslint-plugin-specs/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/eslint-plugin-specs/package.json) [packages/metro-config/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/metro-config/package.json) [packages/react-native-babel-preset/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/react-native-babel-preset/package.json) [packages/normalize-color/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/normalize-color/package.json) [packages/polyfills/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/polyfills/package.json) [packages/assets-registry/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/assets-registry/package.json) [packages/virtualized-lists/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/virtualized-lists/package.json)
- RNTester (packages/rn-tester, '@react-native/tester') is the manual-verification app showcasing components/APIs incl. custom module examples (NativeCxxModuleExample, ReportFullyDrawnViewNativeComponent); private/helloworld is the minimal template app; Fantom exposes a test API (Fantom.createRoot/runTask/scrollTo/installTimerMock) plus a REPL via yarn fantom-cli. — [packages/rn-tester/package.json](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/rn-tester/package.json) [packages/rn-tester/NativeCxxModuleExample/NativeCxxModuleExample.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/packages/rn-tester/NativeCxxModuleExample/NativeCxxModuleExample.js) [private/helloworld/index.js](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/private/helloworld/index.js) [private/react-native-fantom/__docs__/README.md#L31-50](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/private/react-native-fantom/__docs__/README.md#L31-L50) [private/react-native-fantom/__docs__/README.md#L117-157](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/private/react-native-fantom/__docs__/README.md#L117-L157) [scripts/fantom-cli.sh](https://github.com/react/react-native/blob/b7c0e4986a0242cdd47afd002f3e712e80914c3c/scripts/fantom-cli.sh)

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)
