{"id":32280459,"url":"https://github.com/ifapmzadu6/quickqr_scanner_plugin","last_synced_at":"2026-02-21T02:38:56.604Z","repository":{"id":305785570,"uuid":"1023949158","full_name":"ifapmzadu6/quickqr_scanner_plugin","owner":"ifapmzadu6","description":"High-performance QR scanner Flutter plugin with VisionKit integration","archived":false,"fork":false,"pushed_at":"2025-07-22T01:22:19.000Z","size":326,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-22T02:48:21.314Z","etag":null,"topics":["android","barcode","camera","flutter-plugin","ios","qr-code","vision-kit"],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ifapmzadu6.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-22T00:50:31.000Z","updated_at":"2025-07-22T01:22:22.000Z","dependencies_parsed_at":"2025-07-22T02:58:30.093Z","dependency_job_id":null,"html_url":"https://github.com/ifapmzadu6/quickqr_scanner_plugin","commit_stats":null,"previous_names":["ifapmzadu6/quickqr_scanner"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ifapmzadu6/quickqr_scanner_plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifapmzadu6%2Fquickqr_scanner_plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifapmzadu6%2Fquickqr_scanner_plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifapmzadu6%2Fquickqr_scanner_plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifapmzadu6%2Fquickqr_scanner_plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ifapmzadu6","download_url":"https://codeload.github.com/ifapmzadu6/quickqr_scanner_plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifapmzadu6%2Fquickqr_scanner_plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29671780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T00:11:43.526Z","status":"online","status_checked_at":"2026-02-21T02:00:07.432Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","barcode","camera","flutter-plugin","ios","qr-code","vision-kit"],"created_at":"2025-10-23T00:44:03.124Z","updated_at":"2026-02-21T02:38:56.595Z","avatar_url":"https://github.com/ifapmzadu6.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QuickQR Scanner Plugin\n\n[![pub package](https://img.shields.io/pub/v/quickqr_scanner_plugin.svg)](https://pub.dev/packages/quickqr_scanner_plugin)\n[![Platform](https://img.shields.io/badge/platform-flutter-blue.svg)](https://flutter.dev)\n[![iOS](https://img.shields.io/badge/iOS-12.0+-blue.svg)](https://developer.apple.com)\n[![Android](https://img.shields.io/badge/Android-21+-green.svg)](https://developer.android.com)\n[![Flutter](https://img.shields.io/badge/Flutter-3.16+-02569B.svg)](https://flutter.dev)\n\nEnterprise-grade QR code and barcode scanner plugin for Flutter with native Vision framework integration for iOS and ML Kit for Android. Designed for production apps requiring high-performance, low-latency scanning with comprehensive error handling.\n\n## 🌟 Features\n\n### Core Scanning\n- **Native Performance**: Vision framework (iOS) + ML Kit (Android) for optimal speed\n- **Real-time Scanning**: Live camera scanning with sub-second detection\n- **Platform Views**: Native camera integration with Flutter UI overlay\n- **Multiple Formats**: QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-E\n- **Image Scanning**: Scan QR codes from image files without picker dependency\n\n### 📸 Advanced Camera Control (v1.1.0+)\n- **Digital Zoom**: 1.0x - 10.0x zoom control with smooth adjustment\n- **Macro Mode**: Close-up scanning for small QR codes\n- **Focus Control**: Auto, manual, infinity, and macro focus modes with point-of-interest\n- **Exposure Control**: Automatic and manual exposure with EV compensation\n- **White Balance**: Auto, daylight, cloudy, tungsten, and fluorescent modes\n- **Image Stabilization**: Hardware-based stabilization where available\n- **HDR Mode**: High Dynamic Range for challenging lighting conditions\n- **Frame Rate Control**: Adjustable frame rates (15-60fps) for performance\n- **Camera Switching**: Front/back camera selection\n- **Preset Configurations**: Macro, distant, low-light, and performance presets\n\n### Enterprise Features\n- **Enterprise Error Handling**: Comprehensive status reporting and recovery\n- **Permission Management**: Graceful camera permission handling\n- **Resource Management**: Proper cleanup and memory management\n- **State Management**: Real-time access to all camera settings\n- **Capability Detection**: Check device support for each feature\n- **Minimal Dependencies**: Lightweight with essential libraries only\n\n## 📱 Supported Platforms\n\n| Platform | Version | Framework | Performance |\n|----------|---------|-----------|------------|\n| iOS      | 12.0+   | Vision + AVFoundation | Hardware acceleration on supported devices |\n| Android  | API 21+ | ML Kit + Camera2 API | Google ML optimization |\n\n## 🚀 Installation\n\nAdd this to your package's `pubspec.yaml` file:\n\n```yaml\ndependencies:\n  quickqr_scanner_plugin: ^1.1.0\n```\n\nThen run:\n\n```bash\nflutter pub get\n```\n\n### iOS Configuration\n\nAdd camera permission to `ios/Runner/Info.plist`:\n\n```xml\n\u003ckey\u003eNSCameraUsageDescription\u003c/key\u003e\n\u003cstring\u003eThis app needs camera access to scan QR codes\u003c/string\u003e\n```\n\n### Android Configuration\n\nAdd camera permission to `android/app/src/main/AndroidManifest.xml`:\n\n```xml\n\u003cuses-permission android:name=\"android.permission.CAMERA\" /\u003e\n\u003cuses-feature android:name=\"android.hardware.camera\" android:required=\"true\" /\u003e\n```\n\n## 💡 Quick Start\n\n### Basic Usage\n\n```dart\nimport 'package:quickqr_scanner_plugin/quickqr_scanner_plugin.dart';\n\nclass QRScannerPage extends StatefulWidget {\n  @override\n  _QRScannerPageState createState() =\u003e _QRScannerPageState();\n}\n\nclass _QRScannerPageState extends State\u003cQRScannerPage\u003e {\n  final _scanner = QuickqrScannerPlugin();\n  StreamSubscription\u003cQRScanResult\u003e? _subscription;\n\n  @override\n  void initState() {\n    super.initState();\n    _initializeScanner();\n  }\n\n  Future\u003cvoid\u003e _initializeScanner() async {\n    // Check device availability\n    final availability = await _scanner.checkAvailability();\n    if (!availability['isAvailable']) {\n      print('QR scanning not supported on this device');\n      return;\n    }\n\n    // Check permissions\n    final permissions = await _scanner.checkPermissions();\n    if (permissions['status'] != 'granted') {\n      final requested = await _scanner.requestPermissions();\n      if (!requested['granted']) {\n        print('Camera permission required');\n        return;\n      }\n    }\n\n    // Initialize scanner\n    await _scanner.initialize();\n    \n    // Listen for scan results\n    _subscription = _scanner.onQRDetected.listen((result) {\n      print('QR Code detected: ${result.content}');\n      print('Format: ${result.format}');\n      print('Confidence: ${result.confidence}');\n    });\n\n    // Start scanning\n    await _scanner.startScanning();\n  }\n\n  @override\n  void dispose() {\n    _subscription?.cancel();\n    _scanner.dispose();\n    super.dispose();\n  }\n}\n```\n\n### Image-based Scanning\n\n```dart\n// Scan QR code from image file\nFuture\u003cvoid\u003e scanFromImage(String imagePath) async {\n  final scanner = QuickqrScannerPlugin();\n  final result = await scanner.scanFromImage(imagePath);\n  if (result != null) {\n    print('QR Code: ${result.content}');\n    print('Format: ${result.format}');\n  } else {\n    print('No QR code found in image');\n  }\n}\n```\n\n## 📸 Advanced Camera Control\n\n### Basic Camera Control\n\n```dart\nimport 'package:quickqr_scanner_plugin/quickqr_scanner_plugin.dart';\n\nclass AdvancedQRScanner extends StatefulWidget {\n  @override\n  _AdvancedQRScannerState createState() =\u003e _AdvancedQRScannerState();\n}\n\nclass _AdvancedQRScannerState extends State\u003cAdvancedQRScanner\u003e {\n  final _scanner = QuickqrScannerPlugin();\n  double _currentZoom = 1.0;\n  double _maxZoom = 1.0;\n  bool _macroMode = false;\n\n  @override\n  void initState() {\n    super.initState();\n    _initializeWithCameraControl();\n  }\n\n  Future\u003cvoid\u003e _initializeWithCameraControl() async {\n    // Initialize scanner\n    await _scanner.initialize();\n    \n    // Get camera capabilities\n    final capabilities = await _scanner.getCameraCapabilities();\n    final zoomInfo = await _scanner.getZoomCapabilities();\n    \n    setState(() {\n      _maxZoom = zoomInfo['maxZoom']?.toDouble() ?? 1.0;\n    });\n  }\n\n  // Zoom control\n  Future\u003cvoid\u003e _setZoom(double zoomLevel) async {\n    final result = await _scanner.setZoomLevel(zoomLevel);\n    if (result['success'] == true) {\n      setState(() {\n        _currentZoom = result['currentZoom']?.toDouble() ?? zoomLevel;\n      });\n    }\n  }\n\n  // Macro mode for close-up scanning\n  Future\u003cvoid\u003e _toggleMacroMode() async {\n    final result = await _scanner.setMacroMode(!_macroMode);\n    if (result['success'] == true) {\n      setState(() {\n        _macroMode = result['enabled'] ?? !_macroMode;\n      });\n    }\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: Text('Advanced QR Scanner')),\n      body: Column(\n        children: [\n          // Zoom control\n          if (_maxZoom \u003e 1.0)\n            Slider(\n              value: _currentZoom,\n              min: 1.0,\n              max: _maxZoom,\n              divisions: (_maxZoom * 10).round() - 10,\n              label: '${_currentZoom.toStringAsFixed(1)}x',\n              onChanged: _setZoom,\n            ),\n          \n          // Macro mode toggle\n          SwitchListTile(\n            title: Text('Macro Mode'),\n            subtitle: Text('For small QR codes'),\n            value: _macroMode,\n            onChanged: (_) =\u003e _toggleMacroMode(),\n          ),\n          \n          // Camera preview would go here\n          Expanded(\n            child: Container(\n              color: Colors.black,\n              child: Center(\n                child: Text(\n                  'Camera Preview',\n                  style: TextStyle(color: Colors.white),\n                ),\n              ),\n            ),\n          ),\n        ],\n      ),\n    );\n  }\n}\n```\n\n### Preset Configurations\n\n```dart\n// Macro configuration for close-up scanning\nfinal macroConfig = CameraControlConfig.macro();\nawait scanner.applyCameraControlConfig(macroConfig);\n\n// Distant configuration for far-range scanning\nfinal distantConfig = CameraControlConfig.distant();\nawait scanner.applyCameraControlConfig(distantConfig);\n\n// Low light configuration\nfinal lowLightConfig = CameraControlConfig.lowLight();\nawait scanner.applyCameraControlConfig(lowLightConfig);\n\n// Performance optimized configuration\nfinal performanceConfig = CameraControlConfig.performance();\nawait scanner.applyCameraControlConfig(performanceConfig);\n```\n\n### Manual Camera Control\n\n```dart\n// Set specific focus mode with point of interest\nawait scanner.setFocusMode(FocusMode.manual, FocusPoint(0.5, 0.5));\n\n// Adjust exposure compensation\nawait scanner.setExposureMode(ExposureMode.manual, -0.5);\n\n// Set white balance for specific lighting\nawait scanner.setWhiteBalanceMode(WhiteBalanceMode.tungsten);\n\n// Enable image stabilization\nawait scanner.setImageStabilization(true);\n\n// Set frame rate for performance optimization\nawait scanner.setFrameRate(30);\n\n// Enable HDR mode for challenging lighting\nawait scanner.setHDRMode(true);\n```\n\n### State Monitoring\n\n```dart\n// Get current camera state\nfinal zoomState = await scanner.getZoomCapabilities();\nfinal focusState = await scanner.getFocusState();\nfinal exposureState = await scanner.getExposureState();\nfinal macroState = await scanner.getMacroModeState();\n\nprint('Current zoom: ${zoomState['currentZoom']}x');\nprint('Focus mode: ${focusState['focusMode']}');\nprint('Macro enabled: ${macroState['enabled']}');\n\n// Get comprehensive camera capabilities\nfinal capabilities = await scanner.getCameraCapabilities();\nfinal features = capabilities['features'] as Map\u003cString, dynamic\u003e;\n\nif (features['macroMode'] == true) {\n  print('Macro mode supported');\n}\nif (features['stabilization'] == true) {\n  print('Image stabilization available');\n}\n```\n\n## 📖 API Reference\n\n### QuickqrScannerPlugin\n\nMain plugin class providing QR scanning functionality.\n\n#### Properties\n\n- `static instance` - Singleton instance\n- `onQRDetected` - **Broadcast Stream\u003cQRScanResult\u003e** for real-time scan results\n  - Emits QR/barcode detection events during active scanning\n  - Supports multiple listeners with automatic error recovery\n  - **⚠️ Remember to cancel subscriptions in `dispose()` to prevent memory leaks**\n\n#### Methods\n\n##### Device Information\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e checkAvailability()\n```\nReturns device scanning capabilities and supported formats.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e checkPermissions()\n```\nChecks current camera permission status.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e requestPermissions()\n```\nRequests camera permissions from user.\n\n##### Scanner Control\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e initialize([QRScanConfig? config])\n```\nInitializes the scanner with optional configuration.\n\n```dart\nFuture\u003cvoid\u003e startScanning()\n```\nStarts real-time QR code scanning.\n\n```dart\nFuture\u003cvoid\u003e stopScanning()\n```\nStops the scanning process.\n\n```dart\nFuture\u003cvoid\u003e dispose()\n```\nReleases all resources and cleans up.\n\n##### Additional Features\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e toggleFlashlight()\n```\nToggles device flashlight (if available).\n\n```dart\nFuture\u003cQRScanResult?\u003e scanFromImage(String imagePath)\n```\nScans QR code from image file.\n\n##### Camera Control (v1.1.0+)\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setZoomLevel(double zoomLevel)\n```\nSets digital zoom level (1.0x - 10.0x).\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getZoomCapabilities()\n```\nGets current zoom level and capabilities.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setMacroMode(bool enabled)\n```\nEnables/disables macro mode for close-up scanning.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setFocusMode(FocusMode focusMode, [FocusPoint? focusPoint])\n```\nSets focus mode with optional point of interest.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setExposureMode(ExposureMode exposureMode, [double? exposureCompensation])\n```\nSets exposure mode with optional EV compensation.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setCameraResolution(CameraResolution resolution)\n```\nSets camera resolution preference.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e switchCamera(CameraPosition position)\n```\nSwitches between front and back camera.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setImageStabilization(bool enabled)\n```\nEnables/disables image stabilization.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setWhiteBalanceMode(WhiteBalanceMode whiteBalanceMode)\n```\nSets white balance mode.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setFrameRate(int frameRate)\n```\nSets preferred frame rate.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e setHDRMode(bool enabled)\n```\nEnables/disables HDR mode.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getCameraCapabilities()\n```\nGets comprehensive camera capabilities.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e applyCameraControlConfig(CameraControlConfig config)\n```\nApplies complete camera configuration.\n\n##### Camera State (v1.1.0+)\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getMacroModeState()\n```\nGets current macro mode state.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getFocusState()\n```\nGets current focus mode and settings.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getExposureState()\n```\nGets current exposure settings.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getCameraResolutionState()\n```\nGets current resolution settings.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getImageStabilizationState()\n```\nGets current stabilization state.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getWhiteBalanceState()\n```\nGets current white balance settings.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getFrameRateState()\n```\nGets current frame rate settings.\n\n```dart\nFuture\u003cMap\u003cString, dynamic\u003e\u003e getHDRState()\n```\nGets current HDR state.\n\n### Data Models\n\n#### QRScanResult\n\n```dart\nclass QRScanResult {\n  final String content;     // QR code content\n  final String format;      // Barcode format (qr, code128, etc.)\n  final int timestamp;      // Detection timestamp (milliseconds)\n  final double confidence;  // Detection confidence (0.0-1.0)\n}\n```\n\n#### CameraControlConfig (v1.1.0+)\n\n```dart\nclass CameraControlConfig {\n  final double zoomLevel;              // Digital zoom level (1.0-10.0)\n  final bool enableMacroMode;          // Enable macro mode\n  final FocusMode focusMode;           // Focus mode setting\n  final FocusPoint? focusPoint;        // Manual focus point\n  final ExposureMode exposureMode;     // Exposure mode\n  final double? exposureCompensation;  // EV compensation\n  final CameraResolution resolution;   // Resolution preference\n  final CameraPosition position;       // Camera position\n  final bool enableStabilization;      // Image stabilization\n  final WhiteBalanceMode whiteBalance; // White balance mode\n  final int? preferredFrameRate;       // Frame rate preference\n  final bool enableHDR;                // HDR mode\n\n  // Preset factory constructors\n  factory CameraControlConfig.macro();       // Close-up scanning\n  factory CameraControlConfig.distant();     // Far-range scanning\n  factory CameraControlConfig.lowLight();    // Low light conditions\n  factory CameraControlConfig.performance(); // Performance optimized\n}\n```\n\n#### Enums\n\n```dart\nenum FocusMode { auto, manual, infinity, macro }\nenum ExposureMode { auto, manual }\nenum CameraResolution { low, medium, high, ultra }\nenum CameraPosition { back, front }\nenum WhiteBalanceMode { auto, daylight, cloudy, tungsten, fluorescent }\n\nclass FocusPoint {\n  final double x; // Normalized coordinates (0.0-1.0)\n  final double y; // Normalized coordinates (0.0-1.0)\n}\n```\n\n## 📱 Example App\n\nA comprehensive example app is included in the `example/` directory demonstrating:\n\n- Device capability detection\n- Permission handling\n- Real-time scanning with visual feedback\n- Image-based scanning\n- Error handling and recovery\n- Scan result management\n- Flashlight control\n\nTo run the example:\n\n```bash\ncd example\nflutter run\n```\n\n## 🛠 Performance Notes\n\n### iOS (VisionKit)\n- **High Performance**: Native system integration\n- **Low Battery Usage**: Optimized Apple Vision framework\n- **System UI**: Consistent with iOS design patterns\n- **Neural Engine**: Hardware acceleration on supported devices\n\n### Android (ML Kit)\n- **Google ML**: Powered by Google's machine learning\n- **On-device Processing**: No internet connection required\n- **Broad Compatibility**: Works on API level 21+\n- **Efficient Detection**: Optimized for mobile devices\n\n## 🚨 Troubleshooting\n\n### Common Issues\n\n**\"Camera permission denied\"**\n- Ensure camera permission is added to platform manifests\n- Check that user has granted permission in device settings\n- Use `checkPermissions()` and `requestPermissions()` methods\n\n**\"Scanner not initialized\"**\n- Call `initialize()` before starting scanning\n- Ensure initialization completes successfully before calling other methods\n- Check device compatibility with `checkAvailability()`\n\n**\"No camera available\"**\n- Verify device has camera hardware\n- Check that camera isn't being used by another app\n- Try restarting the app or device\n\n### Debug Mode\n\nEnable detailed logging in debug builds:\n\n```dart\n// Add to main.dart for debugging\nvoid main() {\n  if (kDebugMode) {\n    print('QuickQR Scanner Plugin Debug Mode Enabled');\n  }\n  runApp(MyApp());\n}\n```\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to get started.\n\n## 📞 Support\n\n- **Documentation**: [API Reference](API_REFERENCE.md)\n- **Examples**: [More Examples](EXAMPLES.md)\n- **Issues**: [GitHub Issues](https://github.com/ifapmzadu6/quickqr_scanner_plugin/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/ifapmzadu6/quickqr_scanner_plugin/discussions)\n\n---\n\nMade with ❤️ for the Flutter community\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifapmzadu6%2Fquickqr_scanner_plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fifapmzadu6%2Fquickqr_scanner_plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifapmzadu6%2Fquickqr_scanner_plugin/lists"}