How ahmedu007/react-native-nitro-zxing works
This is a React Native barcode-scanning library, not a standalone app. Its principal workflow configures a scanner, accepts VisionCamera frames or Nitro Image stills, decodes supported formats with zxing-cpp, and returns barcode values and coordinates. The graph covers the public API, native input adaptation, decoding, and result objects. Edges are limited to README statements and relationships visible in the supplied source excerpts or SOURCE INDEX; unsampled native registration and platform wiring are not expanded.
Main entry points: HybridBarcodeScanner.cpp Hybrid scanner · Barcode.nitro.ts Barcode result API · ZXingDecoder.cpp ZXing decoder · useBarcodeScanner.ts Scanner hook
Components 20
Public API
- Scanner hook
packages/react-native-nitro-zxing/src/useBarcodeScanner.ts - JS factory
packages/react-native-nitro-zxing/src/factory.ts - Scanner API
packages/react-native-nitro-zxing/src/specs/BarcodeScanner.nitro.ts - Factory options
packages/react-native-nitro-zxing/src/specs/BarcodeScannerFactory.nitro.ts - Format types
packages/react-native-nitro-zxing/src/specs/BarcodeFormat.ts - Value types
packages/react-native-nitro-zxing/src/specs/BarcodeValueType.ts - Geometry types
packages/react-native-nitro-zxing/src/specs/Rect.ts - Point type
packages/react-native-nitro-zxing/src/specs/Point.ts
Native Scanner
- Native factory
packages/react-native-nitro-zxing/cpp/HybridBarcodeScannerFactory.cpp - Hybrid scanner
packages/react-native-nitro-zxing/cpp/HybridBarcodeScanner.cpp - Frame adapter
packages/react-native-nitro-zxing/cpp/FrameImageView.cpp
Decode Engine
- ZXing decoder
packages/react-native-nitro-zxing/cpp/ZXingDecoder.cpp - Image downscaler
packages/react-native-nitro-zxing/cpp/ImageDownscaler.cpp - Value classifier
packages/react-native-nitro-zxing/cpp/BarcodeValueTypeClassifier.cpp
Barcode Results
- Hybrid barcode
packages/react-native-nitro-zxing/cpp/HybridBarcode.cpp - Barcode result API
packages/react-native-nitro-zxing/src/specs/Barcode.nitro.ts
Other components
- Application code
- VisionCamera
- Nitro Image
- zxing-cpp
Connections 19
- Application code → Scanner hook: creates scanner
packages/react-native-nitro-zxing/src/useBarcodeScanner.ts - Scanner hook → JS factory: calls
packages/react-native-nitro-zxing/src/useBarcodeScanner.ts - JS factory → Native factory: requests hybrid
packages/react-native-nitro-zxing/src/factory.ts - Native factory → Hybrid scanner: creates scanner
packages/react-native-nitro-zxing/cpp/HybridBarcodeScannerFactory.cpp - Application code → Scanner API: scans frames or images
packages/react-native-nitro-zxing/src/specs/BarcodeScanner.nitro.ts - VisionCamera → Hybrid scanner: provides frames
README.md - Nitro Image → Hybrid scanner: provides stills
- Hybrid scanner → Frame adapter: adapts frames
packages/react-native-nitro-zxing/cpp/HybridBarcodeScanner.cpp - Hybrid scanner → ZXing decoder: decodes input
packages/react-native-nitro-zxing/cpp/HybridBarcodeScanner.cpp - ZXing decoder → zxing-cpp: reads barcodes
packages/react-native-nitro-zxing/cpp/ZXingDecoder.cpp - ZXing decoder → Image downscaler: downscales pixels
packages/react-native-nitro-zxing/cpp/ZXingDecoder.cpp - ZXing decoder → Value classifier: classifies values
packages/react-native-nitro-zxing/cpp/ZXingDecoder.cpp - Hybrid scanner → Hybrid barcode: wraps results
packages/react-native-nitro-zxing/cpp/HybridBarcodeScanner.cpp - Hybrid barcode → Barcode result API: implements result
packages/react-native-nitro-zxing/cpp/HybridBarcode.cpp - Factory options → Format types: uses formats
packages/react-native-nitro-zxing/src/specs/BarcodeScannerFactory.nitro.ts - Barcode result API → Format types: reports format
packages/react-native-nitro-zxing/src/specs/Barcode.nitro.ts - Barcode result API → Value types: reports value type
packages/react-native-nitro-zxing/src/specs/Barcode.nitro.ts - Barcode result API → Geometry types: uses bounds
packages/react-native-nitro-zxing/src/specs/Barcode.nitro.ts - Barcode result API → Point type: uses corners
packages/react-native-nitro-zxing/src/specs/Barcode.nitro.ts