Skip to main content

Packages

@runanywhere/core is required. Add the backends you need.
@runanywhere/qhexrt is published at 0.20.19 and does not track the other four. Pin it separately rather than aligning the versions.

Optional backends

@runanywhere/mlx registers only on physical iOS hardware: MLX.register() and MLX.isAvailable() both return false in the simulator. @runanywhere/qhexrt ships arm64-v8a only.

iOS

Deployment target is 17.5 in every package podspec. For speech input, add to Info.plist:

Android

minSdk 24, compileSdk and targetSdk 36.
AndroidManifest.xml

Peer dependencies

react-native-nitro-modules is a required peer dependency, not an optional one. Without it the JS side installs fine and the native module is missing at runtime, which reads as an SDK fault rather than a missing dependency.
Model downloads run through the SDK’s native download bridge, not through a JavaScript filesystem library. react-native-fs participates in one recovery path only: when a previous interrupted download left more bytes on disk than the new plan expects, the SDK deletes the oversize partials and re-plans once. Without it, that case surfaces as a deterministic error instead.

Registering a backend

Register before initializing.

Devices, not emulators

The Android emulator has no arm64 native libraries for these backends, and MLX only executes on physical iOS hardware. Build to a device.