React Native ExecuTorch v0.8.0 👁️ ⚛️
This is the biggest and the most exciting release for us so far! If you're looking for processing camera input with AI models, running VLMs, or Bare RN support, look no more 👇
What's new?
Computer Vision
- VisionCamera integration: All computer vision hooks now expose a
runOnFrameworklet for real-time camera frame processing via VisionCamera v5 docs - Instance Segmentation: New
useInstanceSegmentationhook for per-pixel object masks, supporting YOLO (nano/small/medium/large/extra-large) and RF-DETR models docs - Object Detection: Added YOLO and RF-DETR model support docs
- Semantic Segmentation: Added support for DeepLab V3, LRASPP, FCN, and Selfie Segmentation models docs
- Quantized CV models: Added quantized variants for CLIP, Style Transfer, EfficientNetV2, and SSDLite
- Custom model support for Object Detection & Instance / Semantic Segmentation: Both modules are now generic — you can plug in your own model via
fromCustomModel()as long as it conforms to the expected input/output contract (see respective docs for further guidance)
VLMs
- Vision Language Models (VLMs):
useLLMnow supports multimodal models — passcapabilities: ['vision']and send images alongside messages docs - Added support for Liquid Foundation Models vision-language model (
LFM2_VL_1_6B_QUANTIZED).
LLMs
- LFM-2.5 support: Added support for Liquid Foundation Model 2.5 Instruct docs
- LLM context management: Added
ContextStrategytoChatConfig— configure naive, message-count-based, or sliding window context truncation.SlidingWindowContextStrategyis now the default
docs
Audio
- Whisper is now up to 3x faster
- TTS + LLM integration: Text-to-Speech streaming now accepts incrementally expanded text input, enabling real-time speech synthesis piped directly from a running LLM docs
- Kokoro TTS pre-computed phonemes: New
forwardFromPhonemes/streamFromPhonemesAPIs let you bypass the built-in G2P pipeline and supply your own IPA phoneme strings docs - Speech-to-Text timestamps:
transcribeandstreamnow returnTranscriptionResultobjects with word-level timestamps docs
General
- Bare React Native support: The library now officially supports bare React Native projects via
react-native-executorch-bare-resource-fetcherdocs - Modular resource fetcher adapters: Platform-specific adapters (
react-native-executorch-expo-resource-fetcher,react-native-executorch-bare-resource-fetcher) replace the previous monolithic fetcher, requiring explicit initialization viainitExecutorch()
docs - Uniform module factory API: All modules now expose
fromModelName()andfromCustomModel()static factories, replacing the oldnew Module() + load()pattern
Breaking changes ⚠️
initExecutorch()with an explicit adapter is now required before using any hook. Installreact-native-executorch-expo-resource-fetcherorreact-native-executorch-bare-resource-fetcherdepending on your project type
docs- All modules now use static factory methods (
Module.fromModelName()/Module.fromCustomModel()) — the oldnew Module()constructor +.load()pattern is removed ImageSegmentationhas been renamed toSemanticSegmentation— update imports and hook names accordingly (useSemanticSegmentation) docs- Semantic segmentation
resizeparameter renamed toresizeToInput - Semantic segmentation
forward()return type changed — now returnsRecord<'ARGMAX', Int32Array> & Record<K, Float32Array>instead ofnumber[] ObjectDetection.forward()now accepts anObjectDetectionOptionsobject for filtering classes of interestClassification.forward()return type changed — now returns a type-safe record of label names to scores instead ofRecord<string, number>StyleTransfer.forwardsignature changed — now acceptsstring | PixelDataand returnsPromise<PixelData | string>depending on theoutputparameter docs- Speech-to-Text:
transcribeandstreamnow returnTranscriptionResult(not raw strings).streamis now an async generator. Thecommitted/nonCommittedhook properties have been removed
docs - TTS streaming API changed —
TextToSpeechStreamingCallbackspattern replaced bystreamInsert()/streamStop()methods, andstream()is now an async generator docs - LLM
ChatConfig:contextWindowLengthhas been replaced bycontextStrategy