Compatibility

Conformance with popular native packages.We test and build compatibility stubs of the top 2,000 most popular React Native packages with native dependencies, many via pixel-diffing to ensure perfect accuracy.
CoreTop 500Top 1kWorksPerfect
top 500 native libraries by weekly downloads
100%
70%
40%
10%
verifiedpixel-diffed vs real iOS
worksloads and runs
partialsome APIs missing
Check your projectDrop your package.json or lockfile to see how your dependencies score.
drop your package.json hereor click to browse
package.jsonbun.lockpackage-lock.jsonyarn.lock
react-native
the framework itself · 100 pixel-checked surfaces
Core Essentials
react-native-reanimated
layout animation builders are exported but no enter/exit animation actually plays, useScrollViewOffset returns static 0, useAnimatedSensor static, useReducedMotion always false, useAnimatedKeyboard height tracking returns 0
react-native-gesture-handler
DrawerLayout (passthrough noop), NativeViewGestureHandler still lacks native-scroll coupling and handlerTag semantics, ForceTouch semantics are placeholder-only
react-native-screens
statusBarColor/navigationBarColor/navigationBarTranslucent ignored, replaceAnimation differentiation, formSheet detent fidelity, integrated search bar placements
react-native-svg
SVG filter primitives (Filter, FeBlend, FeColorMatrix, FeGaussianBlur, FeComposite, etc) — all fe* skipped; ClipPath/Mask/Use/Pattern/Symbol/Image listed as skipped in engine
react-native-keyboard-controller
per-frame keyboard progress events (smooth `onMove` requires SAB-backed shared values driven from the shell-side keyboard animation; deferred — see plans/real-worklets.md)
All Packages(605 of 767)
prev
1
2
51
next
expo-splash-screen
full splash wired to the sootsim canvas boot splash, including the app's REAL configured artwork. the config plugin's image + backgroundColor (+ imageWidth, resizeMode, dark variant) and the legacy expo.splash / expo.ios.splash blocks are parsed and painted on boot exactly like the native splash window. setOptions({fade,duration}) is honored: hideAsync()/hide() cross-dissolve the splash over the configured duration (default 400ms, fade default off — mirroring ios/SplashScreenManager.swift hide()); preventAutoHideAsync holds the splash until the app hides it. matches upstream index.native.ts semantics.
@react-native-masked-view/masked-view
engine-level masked-view node with canvaskit saveLayer + BlendMode.DstIn alpha compositing
expo-video
DRM, native controls, selectable audio/video/subtitle tracks, AirPlay, fullscreen and picture-in-picture presentation, live-stream latency/timestamps, thumbnail generation, and persistent video cache
react-native-pager-view
overdrag (accepted but ignored), offscreenPageLimit (accepted but ignored), pageMargin, keyboardDismissMode, native scroll fidelity (momentum physics differ)
expo-linear-gradient
CanvasKit gradient shader via _gradientColors style prop, full API
@react-native-menu/menu
keepsMenuPresented attribute (iOS 16+), image/imageColor rendering in menu items, inline element actions
expo-image
transition/animation effects, placeholder rendering, blurRadius, contentPosition, sfEffect/SFSymbol, allowDownscaling, autoplay (GIF), responsivePolicy
expo-application
real native bundle metadata, Android id/install referrer on non-Android platforms, push entitlement inspection
expo-constants
real binary-derived embedded app config, Expo Updates manifest2, expoGoConfig/easConfig, physical-device status bar and system font enumeration
expo-network
real IP lookup, cellular/wifi/ethernet subtype detection, Android-only airplane mode detection
expo-screen-orientation
the device frame does not visually re-lay-out on lock — faithful to the browser/fixed-sim-frame limitation (identical to react-native-orientation-locker, not a sootsim-specific gap); there is no physical rotation sensor on a fixed sim device so DeviceOrientationEvent-driven auto-rotation is intentionally absent (matches a locked iOS device)
expo-secure-store
canUseBiometricAuthentication always false (no biometric prompt available on web — correct unavailable shape), requireAuthentication not enforced beyond storage partitioning/encryption (no biometric prompt to require), keychainAccessible does not affect browser storage access. sync reads cannot synchronously cold-load IndexedDB after a fresh worker boot; async reads hydrate the cache. all of these are honest absent-on-web semantics — apps with graceful-degradation paths behave correctly.
prev
1
2
51
next
showing 1-12 of 605

Ready to build?

Run your React Native app in the browser. No simulators, no native toolchain, no waiting.

curl -fsSL https://sootsim.com/install.sh | sh