---
title: "What's New in VisionCamera V5?"
url: https://daily.dev/posts/what-s-new-in-visioncamera-v5--opoisosts
source_url: https://margelo.com/blog/whats-new-in-visioncamera-v5
type: article
source: "Nitro Modules"
published: 2026-08-23T12:23:32.643Z
updated: 2026-08-23T12:52:39.790Z
tags: ["android", "ios", "react-native"]
reading_time: 17
upvotes: 0
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# What's New in VisionCamera V5?

**[Nitro Modules](https://daily.dev/sources/margelo)** · 17 min read · 0 upvotes · 0 comments

## Summary

VisionCamera V5, the React Native camera library, ships as a major rewrite built on Nitro Modules instead of hand-written JSI/C++, cutting ~3,000 lines of code and eliminating race-condition crashes like SIGSEGV. A new Constraints API replaces the old fake Formats system, letting the camera negotiate supported feature combinations instead of guessing. Other additions include in-memory Photo objects (no more temp-file writes), depth data streaming, RAW capture (DNG/ProRAW), Multi-Cam sessions, an imperative API, a GPU-accelerated frame resizer (~5x faster), a unified MLKit barcode scanner for both platforms, coordinate-system conversions, manual AE/AF/AWB controls, and a modularized package structure (barcode-scanner, location, resizer, skia, worklets split into separate packages). Native Frame Processor Plugins are now fully typed Nitro Modules, and the default worklets engine switches to react-native-worklets.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://margelo.com/blog/whats-new-in-visioncamera-v5>

## Questions this post answers

### What changed in VisionCamera V5 compared to V4 for React Native camera apps?

VisionCamera V5 is fully rewritten on Nitro Modules instead of hand-written JSI/C++, removing the old Formats API in favor of a new Constraints API that negotiates supported camera configurations. It adds in-memory Photo objects, depth streaming, RAW capture (DNG/ProRAW), Multi-Cam sessions, an imperative API, and splits the barcode scanner, resizer, location, and skia features into separate packages.

_daily.dev helps React Native developers track breaking changes like the VisionCamera V4-to-V5 migration._

### Why was the Formats API removed in VisionCamera V5 and replaced with Constraints?

The Formats API was removed because it exposed a fake, stitched-together list of camera formats on Android that often didn't reflect what the hardware could actually support simultaneously, sometimes causing the camera session to fail or crash. The new Constraints API lets developers express intent (like fps or HDR) and internally negotiates a valid configuration, using AVCaptureDevice.Format filtering on iOS and CameraInfo.isSessionConfigSupported on Android.

_Developers weighing camera library upgrades can follow API redesigns like this one on daily.dev._

### How much faster is Nitro Modules compared to Turbo Modules and Expo Modules for React Native?

Nitro-based native calls are roughly 15x faster than Turbo Modules and about 60x faster than Expo Modules, according to benchmarks from the VisionCamera V5 rewrite. This speedup comes from lazy, per-property native calls instead of serializing entire objects like CameraDevice or CameraFormat upfront, improving startup performance and reducing camera latency.

_daily.dev keeps performance-focused React Native developers current on native module benchmarks like this._

---

Tags: [#android](https://daily.dev/tags/android), [#ios](https://daily.dev/tags/ios), [#react-native](https://daily.dev/tags/react-native)

[View this post on daily.dev](https://daily.dev/posts/what-s-new-in-visioncamera-v5--opoisosts)
