Skip to content

Repository files navigation

react-native-nitro-zxing

Barcode scanning for VisionCamera v5, powered by zxing-cpp and implemented as pure C++ Nitro HybridObjects. The camera's luminance plane is decoded in place - no ML Kit, no base64, no temp files.

npm install react-native-nitro-zxing react-native-vision-camera react-native-nitro-modules react-native-nitro-image
import { useFrameOutput } from 'react-native-vision-camera'
import { useBarcodeScanner } from 'react-native-nitro-zxing'

const scanner = useBarcodeScanner({ barcodeFormats: ['all-formats'] })
const frameOutput = useFrameOutput({
  pixelFormat: 'yuv',
  onFrame(frame) {
    'worklet'
    const barcodes = scanner.scanCodes(frame)
    frame.dispose()
  },
})

The API is similar to react-native-vision-camera-barcode-scanner .

Benchmarks

Input zxing ML Kit
Live camera frames (1280×720 YUV) 13.1 ms 34.4 ms 2.6× faster
Photo capture (3060×4080 still) 21.7 ms 59.3 ms 2.7× faster
Bundled QR image (256×256 PNG) 0.95 ms 9.7 ms 10.2× faster

About

ZXing Barcode Scanner for react-native-vision-camera written in C++

Resources

Stars

85 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages