A framework for building native Android and iOS apps using React, with JavaScript UI rendered by native platform components.
margelo/react-native-vision-camera
A React Native camera library for photo and video capture, QR/barcode scanning, and real-time frame processing on iOS and Android.
- Stars
- 9,648
- Forks
- 1,397
- Open issues
- 122
- Last commit
- 7 days ago
What is it?
VisionCamera is a camera library for React Native apps. It provides a Camera component that handles photo and video capture, with control over devices (including multi-camera setups), resolutions, aspect ratios, and frame rates from 30 to 240 FPS.
Its main extension point is Frame Processors, which run JavaScript worklets against each camera frame. This makes it possible to build features such as facial recognition, object detection, or drawing shapes, text, and shaders onto the live preview. It also includes a QR/barcode scanner, smooth zooming via Reanimated, fast pause and resume, and HDR and night modes.
Install the react-native-vision-camera package from npm, run pod install for iOS, and set up camera permissions as described in the documentation.
Key features
- 01Photo and video capture with configurable resolution and aspect ratio
- 02QR and barcode scanning
- 03Frame Processors that run JavaScript worklets on each camera frame
- 04Multi-camera device selection and smooth zoom powered by Reanimated
- 05HDR and night modes with 30 to 240 FPS support
Use cases
- Adding in-app camera capture to a React Native app
- Building a QR or barcode scanning screen
- Running real-time face or object detection on a live camera feed
- Drawing filters or overlays on top of the camera preview
Quick start
- 1
Install the package from npm
npm i react-native-vision-camera - 2
Install iOS pods
cd ios && pod install - 3
Set up camera permissions as described in the documentation
Things to know
- Requires a React Native project with iOS and Android native setup.
- The README says V4 is no longer maintained, so use the current V5 release.
Topics
FAQ
- What is react-native-vision-camera?
- A React Native camera library for photo and video capture, QR/barcode scanning, and real-time frame processing on iOS and Android. VisionCamera is a camera library for React Native apps. It provides a Camera component that handles photo and video capture, with control over devices (including multi-camera setups), resolutions, aspect ratios, and frame rates from 30 to 240 FPS.
- Is react-native-vision-camera free to use? What license does it have?
- react-native-vision-camera is open source under the MIT license. Check the license terms before using it in commercial products.
- Is react-native-vision-camera still maintained?
- Actively maintained. The last commit to react-native-vision-camera was on Oct 14, 2026.
- What can I use react-native-vision-camera for?
- Adding in-app camera capture to a React Native app Building a QR or barcode scanning screen Running real-time face or object detection on a live camera feed Drawing filters or overlays on top of the camera preview
- How do I install react-native-vision-camera?
- Install the package from npm: npm i react-native-vision-camera Install iOS pods: cd ios && pod install Set up camera permissions as described in the documentation
- Where can I get react-native-vision-camera?
- The source code and installation instructions are on GitHub: https://github.com/margelo/react-native-vision-camera
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An open-source framework for building universal native apps with React that run on Android, iOS, and the web.
React Native binding of llama.cpp for running GGUF LLMs on-device in iOS and Android apps.
Google's open-source SDK for building natively compiled mobile, web, and desktop apps from a single Dart codebase.
A Vue.js-based cross-platform framework that lets developers write one codebase for iOS, Android, HarmonyOS, Web and many mini-program platforms.
A framework for building native iOS, Android and visionOS apps with JavaScript or TypeScript, using native UI and APIs directly.