This repository is a high-performance React Native camera library (VisionCamera) that provides photo/video capture, real-time frame processing, barcode scanning, location tagging, and GPU-accelerated frame resizing. It is organized as a monorepo with a core package and several plugin packages (barcode-scanner, location, resizer, skia, worklets). The architecture uses NitroModules to generate C++/Swift/Kotlin hybrid object bridges, enabling zero-copy data flow from platform camera APIs (AVFoundation on iOS, CameraX on Android) to JavaScript. Key entry points include the `<Camera>` React component, hooks like `useCameraSession`, `useFrameOutput`, `useBarcodeScannerOutput`, and factory functions for creating sessions and outputs. External dependencies include platform camera frameworks, ML Kit for barcode detection, CoreLocation for geotagging, and Metal/Vulkan for GPU compute. The library is production-grade, used by major apps (Amazon, Shopify, Tesla, etc.), and features a constraint resolution system for optimal format selection, gesture controllers for zoom and tap-to-focus, and a worklet runtime for offloading frame processing to native threads.
ImagePickerKMP is a Kotlin Multiplatform library (not a standalone application) that delivers production-grade media picking and barcode scanning capabilities for Android, iOS, JVM desktop, and web/JS/Wasm targets. The photo module (imagepickerkmp-photo) provides camera capture, gallery selection, image cropping, EXIF extraction with GPS redaction, configurable compression (LOW/MEDIUM/HIGH), and permission-request UI, all driven through a Compose Multiplatform API centered on rememberImagePickerKMP(). The scanner module (imagepickerkmp-scanner) provides continuous barcode/QR scanning with auto-zoom, distance warnings, batch mode, phantom-code suppression, and enterprise inactivity overlays, using ML Kit on Android and AVFoundation/Vision on iOS. A shared imagepicker-core module abstracts permissions, filesystem access, URI handling, language detection, and logging across platforms via the Kotlin expect/actual mechanism. The library is distributed as versioned Maven artifacts with a published JS bundle for web integration. Architecturally, the codebase is a modular multi-artifact Gradle project: imagepicker-core (infrastructure), imagepickerkmp-photo, and imagepickerkmp-scanner, with each module enforcing dependency boundaries (the scanner module explicitly prohibits depending on the photo module). Its design leans on config-driven API design (large nested data classes such as ImagePickerKMPConfig and ScannerBehaviorConfig with runtime validation), observable state holders (sealed Idle/Loading/Success/Dismissed/Error states backed by Compose mutableStateOf), and event-driven scanner orchestration. Platform-specific behavior is cleanly isolated through expect/actual: Android uses CameraX, ActivityResultContracts, and ExifInterface; iOS uses UIImagePickerController, PHPicker, PhotosUI, and CoreGraphics; desktop/web use file choosers or documented no-op stubs where camera hardware is unavailable. Localization spans 14 languages via YAML translation files and the i18nkonfig plugin, and CI (GitHub Actions) runs detekt static analysis, Kover coverage verification with a 90% line minimum, unit tests across commonTest/androidUnitTest/iosTest, and publishes coverage to Codecov. Maintenance is active: a recent commit history on the develop branch, one open issue, zero Dependabot alerts, and continuously updated Kotlin 2.x / Compose Multiplatform versions indicate steady upkeep. Known rough edges include intentionally blank PlatformPrewarm files, crop implementation stubs on JS/WASM, a handful of placeholder tests asserting true, duplicated permission-handling logic across photo/scanner modules, and a potentially stale build-and-bundle.sh referencing an old JS build path. Overall, this is a well-crafted, professionally engineered KMP library with genuinely reusable cross-platform abstractions and strong test discipline; it is a solid reference for Kotlin Multiplatform architecture and Compose-based camera/scanning UX.
EFQRCode is a pure-Swift, cross-platform Apple framework for generating stylized and highly customizable QR codes, and for recognizing QR codes from images. The core production code exposes two primary entry points: `EFQRCode.Generator` and `EFQRCode.Recognizer`. The generator accepts text/data input, encodes it using the external `QRCodeSwift` package, maps the resulting matrix through a strategy-based style hierarchy (`EFQRCodeStyleBasic`, `EFQRCodeStyleBubble`, `EFQRCodeStyleLine`, `EFQRCodeStyle25D`, `EFQRCodeStyleImage`, etc.), and produces SVG representations which are then rasterized by `SwiftDraw` into static images, PDFs, GIFs, APNGs, or AVFoundation-backed video files. The recognizer uses CoreImage-based detection with grayscale fallback and result caching. The library is heavily documented, supports iOS, macOS, tvOS, watchOS, and visionOS, and is distributed through SPM, CocoaPods, and Carthage. The `Examples/` directory contains demo apps for each platform that act as integration-style usage references, but these are example clients rather than the core deliverable. This is definitively an application/library repository; there are no data pipelines, notebooks, or research artifacts.
ZXing (Zebra Crossing) is a mature, multi-format barcode image processing library written in Java. It provides both decoding and encoding capabilities for over 15 1D and 2D symbologies, including QR Code, Data Matrix, Aztec, PDF417, UPC/EAN, Code 128, and many more. The core library is platform-independent, with additional modules for Android (Barcode Scanner app), Java SE (command-line tools), and web applications (a decode servlet and a GWT-based generator). The architecture follows a clean Reader/Writer interface pattern, with format-specific implementations decoupled from common infrastructure like Reed-Solomon error correction, binarization, and perspective transformation. The library is in maintenance mode: no new features are planned, but bug fixes and minor enhancements from the community are accepted. The Android app is deprecated and does not work on Android 14. Despite its age, the codebase remains a reference implementation for barcode standards and is widely ported to other languages.
VoucherVault is a self-hosted Django web application for digitally managing vouchers, gift cards, coupons, and loyalty cards. It provides a full CRUD interface with features like barcode/QR code scanning, expiry notifications via Apprise, multi-currency support via Fixer.io, offline-first capabilities (service worker + IndexedDB sync), OIDC authentication, item sharing between users, and a PWA manifest for mobile installation. The architecture is a monolithic Django app with Celery for background tasks (expiry checks), Redis as a message broker, and optional PostgreSQL or SQLite databases. The frontend uses the NiceAdmin Bootstrap template with custom dark mode and charting via ECharts. The codebase is well-organized with clear separation of concerns (models, views, forms, templates, static assets) and includes internationalization for English, German, French, and Italian. While the application is feature-rich and actively maintained, it lacks automated tests and has some code duplication in templates, which limits its quality score.
This is a privacy-focused Android application for scanning and generating QR codes and barcodes, developed by the SECUSO research group (Security, Usability, Society) at TU Darmstadt. The app uses the device camera to decode codes, supports image picker scanning, and provides a QR code generator for various content types (URL, text, email, phone, SMS, WiFi, vCard, MeCard, BizCard, geo-location, product, calendar, etc.). It emphasizes minimal permissions (only camera, no internet required for scanning) and includes phishing protection by highlighting domains and requiring user confirmation before opening links. The architecture follows standard Android patterns: Activities with ViewModel + LiveData, Room database for scan history, Repository pattern, and a navigation drawer for main sections (Scanner, Generator, History, Settings, Help, About). The codebase is a mix of Java and Kotlin, uses AndroidX, Material Design, ZXing for barcode decoding, and Glide for image loading. It also integrates a backup service via a git submodule (privacy-friendly-backup-api). The app is part of the Privacy Friendly Apps suite and is licensed under GPLv3.