IronBarcode Architecture (2025.2+)

As of version 2025.2, the IronBarcode package is split into separate managed, native, and machine learning layers. The structure mirrors the naming conventions already used by IronOCR and IronPDF, which gives cleaner cross-platform support and easier maintenance.

Package Structure

Main Distribution

The top-level NuGet packages map to a target platform:

  • BarCode: the default package for Windows, and the primary NuGet for general-purpose use.
  • BarCode.Linux, BarCode.MacOS, and similar: OS-specific distributions that follow the same naming convention as IronOCR and IronPDF.

Internal Package Layers

Each top-level package is assembled from several internal subpackages, each owning one concern.

1. BarCode.Slim

Holds the managed core: the C# code, the interop layer, all PDF-related code, and every C# third-party dependency. This is the central logic and binding layer that drives IronBarcode's managed features.

2. IronSoftware.ReaderInternals.XXX

Contains the native C++ code for reading, writing, and detecting barcodes. Platform-specific variants exist for Windows, Linux, Mac, and others.

3. BarCode.Detection

Carries the machine learning detection logic, currently written in C# on top of ONNX Runtime. It does not depend on the OS at this stage.

Please noteBarCode.Detection will eventually move to ncnn, a native C++ ML inference library, which will then introduce OS-specific variants.

Mobile Platform Exclusions

BarCode.Detection is not bundled into Barcode.iOS or Barcode.Android. The omission is deliberate: ML detection raises performance concerns and compatibility limitations on mobile platforms.

Benefits

The restructured architecture delivers:

  • A modular separation between managed and native code.
  • Clean, OS-targeted packaging.
  • Future-proofing for high-performance native ML detection.
  • Closer alignment with the other Iron Software libraries.
  • Easier maintenance and troubleshooting.
Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...

Read More
Ready to Get Started?
Nuget Downloads 2,295,550 | Version: 2026.7 just released
Still Scrolling Icon

Still Scrolling?

Want proof fast? PM > Install-Package BarCode
run a sample watch your string become a barcode.