Scanbot SDK has been acquired by Apryse! Learn more

Learn more
Skip to content

Battle of the .NET MAUI barcode scanner libraries: ZXing Maui vs. BSNM

Maya October 10, 2025 12 mins read
Cover image ZXing.Net.Maui vs. BarcodeScanning.NativeMaui

Choosing a cross-platform barcode scanner for .NET MAUI isn’t easy. Hardware, operating system, and platform support varies widely across libraries in the ecosystem. 

In this article, we compare two popular barcode scanning libraries for .NET MAUI: ZXing.Net.Maui and BarcodeScanning.Native.Maui. We look at a variety of aspects, from capabilities to maintenance and support.  

Short on time? Then start with the quick summary below. 

💡 Key findings

Supported platforms:

  • ZXing.Net.Maui: Android, iOS, and Windows (barcode generation only)
  • BarcodeScanning.Native.Maui: Android (using Google ML Kit) and iOS/macOS (Apple VisionKit)

Supported barcode types:

  • ZXing.Net.Maui supports a wide variety of 1D and 2D barcodes.
  • BarcodeScanning.Native.Maui supports fewer symbologies. Moreover, barcode support is inconsistent across platforms, with more supported on iOS/macOS than on Android.

Capabilities and customizability:

Both libraries can scan codes from the live camera stream and from images. Neither provides a default UI – you’ll have to build your own. 

  • ZXing.Net.Maui offers barcode generation, but lacks zoom and ROI setup features
  • BarcodeScanning.Native.Maui provides more advanced features, but can’t generate barcodes

Maintenance and updates:

  • ZXing.Net.Maui is well-established, but its core library is in maintenance mode. Updates include bug fixes, but there is no active feature development.
  • BarcodeScanning.Native.Maui is actively maintained and developed. However, its progress is dependent on the underlying native libraries.

Community and support:

Both libraries are dependent on community contributions, with no official support in place.

Limitations:

  • ZXing.Net.Maui
    • Difficulties scanning small and dense barcodes 
    • Camera focus issues 
    • Reduced barcode readability on nano-texture screens on iOS 
    • Limited Windows support 
  • BarcodeScanning.Native.Maui
    • Incorrect UPC-A decoding on iOS 
    • Orientation issues on iOS 
    • Difficulties scanning tiny barcodes 

A detailed comparison: ZXing.Net.Maui vs. BarcodeScanning.Native.Maui

ZXing.Net.Maui is the successor to ZXing.Net.Mobile and provides MAUI controls for camera-based barcode scanning and barcode generation. It builds on the ZXing.Net engine – a  C#/.NET port of the original Java ZXing library. Scanning and barcode generation are available on Android and iOS. Windows is generation-only. 

BarcodeScanning.Native.Maui uses native APIs – Google ML Kit on Android and Apple VisionKit on iOS/macOS – for camera-based barcode scanning. At the time of writing, Windows is not supported. 

Supported barcodes 

ZXing.Net.Maui supports a broad set of 1D and 2D symbologies, including GS1 DataBar and DataBar Expanded. It also covers more industry-specific types like the Intelligent Mail barcode. 

BarcodeScanning.Native.Maui (BSNM) covers the most common formats, but fewer overall. It lacks support for UPC-A/EAN extensions on all platforms. On iOS/macOS, it supports GS1 DataBar variants (including DataBar Limited) and adds Micro QR and Micro PDF417 – formats not available on Android or in ZXing.Net.Maui. 

Both libraries allow restricting which formats will be scanned. 

Barcode typesZXing.Net.Maui – all platformsBSNM – AndroidBSNM – iOS/macOS
UPC-A✅ Yes✅ Yes✅ Yes
UPC-E✅ Yes✅ Yes✅ Yes
UPC-A/EAN Extension✅ Yes❌ No❌ No
EAN-8✅ Yes✅ Yes✅ Yes
EAN-13✅ Yes✅ Yes✅ Yes
ITF (Interleaved 2 of 5)✅ Yes✅ Yes✅ Yes
Code 39✅ Yes✅ Yes✅ Yes
Code 93✅ Yes✅ Yes✅ Yes
Code 128✅ Yes✅ Yes✅ Yes
Codabar✅ Yes✅ Yes✅ Yes
MSI Plessey✅ Yes❌ No❌ No
Intelligent Mail barcode (IMb)✅ Yes❌ No❌ No
GS1 DataBar✅ Yes❌ No✅ Yes
GS1 DataBar Expanded✅ Yes❌ No✅ Yes
GS1 DataBar Limited❌ No❌ No✅ Yes
QR Code✅ Yes✅ Yes✅ Yes
Micro QR Code❌ No❌ No✅ Yes
Data Matrix✅ Yes✅ Yes✅ Yes
Aztec✅ Yes✅ Yes✅ Yes
PDF417✅ Yes✅ Yes✅ Yes
Micro PDF417❌ No❌ No✅ Yes
MaxiCode✅ Yes❌ No❌ No
PharmaCode✅ Yes❌ No❌ No

Capabilities and customizability 

Both libraries support scanning from the live camera and from static images, and all processing runs on-device. 

ZXing.Net.Maui does not expose zoom, nor does it support setting a region of interest (ROI). It therefore always scans the full camera frame.  

BarcodeScanning.Native.Maui, in contrast, does provide zoom and camera controls. Setting an ROI is also possible, using either ViewfinderMode or AimMode. On Android, it can invert source images to scan inverted barcodes, which the native libraries don’t support. However, this impacts performance.

Neither of the libraries provide a user interface out of the box. When using ZXing.Net.Maui, you build your own UI around the CameraBarcodeReaderView component. Similarly, BarcodeScanning.Native.Maui uses CameraView.

FeatureZXing.Net.Maui – Android/iOSBSNM – Android/iOS/macOS
Scan multiple codes at once✅ Yes✅ Yes
Scan from images✅ Yes✅ Yes
Omnidirectional scanning✅ Yes✅ Yes
Camera switching✅ Yes✅ Yes
Torch toggle✅ Yes✅ Yes
Zoom control❌ No✅ Yes
Define ROI❌ No✅ Yes

Maintenance and updates 

ZXing.Net.Maui is a stable, maintenance-focused library. The underlying ZXing engine is in maintenance mode, so updates focus on compatibility, device-specific fixes, build tooling, and bug fixes rather than new features. 

BarcodeScanning.Native.Maui is actively developed. Updates regularly deliver bug fixes, and improvements to performance and OS/hardware compatibility. New capabilities generally track the underlying native APIs (ML Kit and VisionKit). However, their long-term availability is not guaranteed. Google’s history of product deprecations is a useful caution. 

Community and support 

ZXing, in general, has a broader community as it has been around for a long time. While there is no official support, developers typically find answers to questions on GitHub, Reddit and Stack Overflow. 

Support for BarcodeScanning.Native.Maui, too, relies on community contributions. While it can take time, fellow developers and library maintainers actively respond to open GitHub issues. 

Integration and developer resources 

While both libraries have an active community, neither offers documentation. In the table below, you can find links to useful resources to help you get started.  

ZXing.Net.MauiBarcodeScanning.Native.Maui
GitHub repository 
NuGet package 
Integration tutorial 
GitHub repository 
NuGet package 
Integration tutorial 

Limitations 

Even with community support and solid resources, real-world scanning is full of edge cases. Device cameras, OS APIs, and the underlying engines (ZXing, Apple VisionKit, Google ML Kit) all have constraints that may cause issues in production.  

Below are some recurring issues flagged in repositories and community threads on Stack Overflow and Reddit.  

ZXing.Net.Maui

Apart from ZXing being in maintenance mode, developers have mentioned some other limitations. 

Difficulties scanning small and dense barcodes 

ZXing.Net.Maui has issues with scanning small codes, even on higher-end devices. Developers also flag that the scanner has difficulties detecting denser barcodes, such as PDF417.  

Camera focus issues on iOS and Android 

On iPhone 15 Pro devices, the scanner initializes but fails to auto-focus on barcodes. The camera feed often stays blurry at close range and defaults to the wrong lens, requiring manual distance adjustment. While reported specifically for QR and EAN codes, the problem likely affects all barcode types. Similar issues have been flagged on Android 10

Reduced barcode readability on nano-texture screens on iOS 

On iOS devices, QR codes shown on Apple’s nano-texture glass can appear low-contrast or slightly blurred to the camera because the matte surface diffuses light. This lowers edge clarity and may prevent reliable detection, even though Android devices don’t appear to have the issue. This behavior has been observed on M4 MacBook Pro displays. 

Limited Windows scanning support 

While ZXing.Net.Maui supports barcode generation on Windows, the README states that barcode scanning is not supported on the platform. There is, in fact, experimental support. Some developers have managed to display the camera preview, but report that actual scanning fails to work.  

Even when scanning does work, it comes with limitations. For example, on desktop apps with multiple webcams, the scanner doesn’t allow selecting a specific camera. Other users bring up that QR codes are supported, but 1D codes are not

Because scanning behavior is not guaranteed and they are officially unsupported, Windows scanning capabilities are not production-ready. 

BarcodeScanning.Native.Maui

As we commonly see in cross-platform libraries, BarcodeScanning.Native.Maui inherits limitations from its underlying APIs. 

Incorrect UPC-A decoding on iOS 

On iOS, scanning UPC-A barcodes adds an extra leading zero, while scanning on Android returns the correct value. The issue is that it maps UPC-A to VNBarcodeSymbology.Ean13, as Apple’s VisionKit framework lacks native UPC-A support. 

Camera preview rotation issues on iOS 

In recent versions (2.1.9+), the camera preview on iOS may appear rotated by 90 degrees. This occurs across both portrait and landscape orientations, including when screen rotation is locked.  

The problem began after replacing the deprecated VideoOrientation API with VideoRotationAngleForHorizonLevelPreview in iOS/macOS 17+, which requires additional handling of device and sensor rotation angles. 

Difficulties scanning tiny barcodes 
BarcodeScanning.Native.Maui may struggle to detect tiny barcodes. The limitation stems from the underlying ML Kit and VisionKit APIs, where narrow spacing in small barcodes prevents reliable detection. Zooming might improve the issue a bit. 

Conclusion: Which library should you choose? 

The best choice depends on your project’s priorities. 

Use ZXing.Net.Maui if you want a mature and stable library that supports both barcode generation and scanning on iOS and Android, with partial functionality on Windows. However, its ZXing core is in maintenance mode with no active feature development – a key reason why users are switching to BarcodeScanning.Native.Maui.  

BarcodeScanning.Native.Maui is the better choice if you need active development, macOS support and more features. However, be aware that its functionalities track the underlying native libraries. This also introduces inconsistencies in barcode support and behavior across platforms. 

While both libraries have a solid community, neither has official support. Especially for enterprise applications, this introduces real risks.  

Scanbot SDK: Reliable and fast cross-platform barcode scanning software 

If you want consistent cross-platform performance and reliable support, commercial SDKs are the way to go.  

Among them: the Scanbot .NET MAUI Barcode Scanner SDK.  

“Switching to Scanbot SDK from ZXing significantly improved our ability to scan Data Matrix codes. We evaluated several solutions, and the Scanbot SDK provided the perfect blend of performance and value.”

(Benedikt Niermann, Process Improvement Officer,
KROHNE Group)

Beyond performance, there are 5 key reasons why customers choose the Scanbot SDK:  

  1. 100% offline scanning: All data is processed locally on the device, ensuring uninterrupted workflows and compliance with data security regulations. 
  2. Advanced scanning modes: The Scanbot Barcode Scanner SDK provides ready-made modes for scanning single or multiple barcodes, for finding particular barcodes, and for counting barcodes. No additional development effort needed. 
  3. User-friendly features: User guidance, real-time feedback, and AR overlays help users scan barcodes and improve the overall user experience.  
  4. Ease of integration: Ready-to-use UI components accelerate app development. Additionally, the detailed documentation, tutorials, and technical support ensure your integration process runs smoothly.  
  5. Transparent fixed pricing: Our pricing model is straightforward: A fixed annual fee for unlimited scans on unlimited devices. We don’t hamper your growth. 

Curious to try our solution yourself? Test our demo app or request a free 7-day trial license

Scanbot Barcode Scanner SDK features

FAQ

Which libraries does BarcodeScanning.Native.Maui use under the hood?  

BarcodeScanning.Native.Maui uses the Google ML Kit Barcode Scanner API on Android and the Apple VisionKit Framework API on iOS and macOS.  

Does either library parse GS1 Application Identifiers or BCBP (boarding pass) data out of the box?

ZXing.Net.Maui supports GS1 DataBar and GS1 DataBar Expanded. BarcodeScanning.Native.Maui supports the same, plus GS1 DataBar Limited – but only on iOS/macOS, not on Android.

Neither library parses PDF417 boarding passes (BCBP) out of the box. 

The Scanbot SDK, however, provides parsers for GS1 and all its variants, and for BCBP.  

Does either library support Windows scanning now or on the roadmap? 

In short, no. Neither library supports scanning today on Windows. While ZXing.Net.Maui users have successfully implemented scanning, it remains limited and experimental.  

For BarcodeScanning.Native.Maui, Windows is currently unsupported and not on the roadmap.  

If you need Windows support, you may want to consider a commercial solution. Check out the Scanbot Windows Barcode Scanner SDK for more information. 

What value does a commercial solution bring compared to open-source software?  

In short, a commercial SDK trades license cost for predictable maintenance, consistent cross-platform behavior, and accountable support. 

While open-source software is inexpensive and flexible, it can introduce risks in production: 

Compatibility risk: Major OS releases and new devices can break existing behavior. Keeping pace requires ad-hoc fixes or waiting for community patches. 

Cross-platform consistency: Achieving uniform results across iOS, Android, macOS, and Windows is difficult when libraries rely on different native frameworks. Performance and supported symbologies may vary by platform. 

Stability over time: Even mature projects can slow down, shift into maintenance mode, or become abandoned. There is no guarantee of continued development, timely updates, or long-term availability. 

Support: Commercial SDKs typically include access to a dedicated support team, extensive documentation, and responsiveness. This minimizes integration time and any downtime – vital for enterprise applications. 

What barcodes does the Scanbot Barcode Scanner SDK support?  

The Scanbot Barcode Scanner SDK supports:  

1D barcodes:  
EAN-13, EAN-8, EAN-2, EAN-5, ISBN, UPC-A, UPC-E, Code 128, Code 25, Code 39, Code 32, Code 93, Code 11, Codabar, MSI Plessey, Standard 2 of 5, ITF, IATA 2 of 5, One-track Pharmacode and Two-track Pharmacode. 

2D barcodes:  
QR Code, Micro QR Code, rMQR Code, Aztec, PDF417, MicroPDF417, Data Matrix, MaxiCode, GiroCode, Swiss QR Code, Royal Mail Mailmark, NTIN Code, PPN Code, and UDI Code.  

Postal symbologies:  
USPS Intelligent mail, RM4SCC, Australia Post 4-State Customer Code, Japan Post 4-State Customer Code, and KIX. 

Parsers:
GS1 Codes: GS1-128, GS1 DataBar, GS1 DataBar Expanded, GS1 Data Matrix, GS1 DataBar Composite, GS1 DataBar Limited, GS1 DataBar Expanded, and GS1 DataBar Truncated. 
PDF417: AAMVA, ID cards, boarding passes (BCBP), and German medical certificates. 
QR Code: vCard, QR-bill data in Swiss QR Codes, and SEPA QR Codes. 
Data Matrix: XML data for German medication plans. 
Various symbologies: HIBC (Health Industry Bar Code) data 

What platforms does the Scanbot .NET MAUI Barcode Scanner SDK support?  

It is available for iOS and Android. We offer support for Windows in a standalone SDK. 

Related blog posts

Experience our demo apps

Barcode Icon Art

Barcode Scanner SDK

Scan 1D and 2D barcodes reliably in under 0.04s. Try features like Batch Scanning, Scan & Count, and our AR Overlays.

Launch Web Demo

Scan the code to launch the web demo on your phone.

Web QR Code

Also available to download from:

Document Icon Art

Document Scanner SDK

Scan documents quickly and accurately with our free demo app. Create crisp digital scans in seconds.

Launch Web Demo

Scan the code to launch the web demo on your phone.

Black and white QR code. Scan this code for quick access to information.

Also available to download from:

Data_capture Icon Art

Data Capture Modules

Try fast, accurate data capture with our demo app. Extract data from any document instantly – 100% secure.

Launch Web Demo

Scan the code to launch the web demo on your phone.

Black and white QR code. Scan this quick response code with your smartphone.

Also available to download from: