Skip to content
English
  • There are no suggestions because the search field is empty.

IronBarcode Architecture Overview — As of Version 2025.2+

Current architecture in implementation

 

Overview

IronBarcode package architecture has been restructured for better modularity, cross-platform support, and long-term maintainability. The new design aligns with the naming conventions of IronOCR and IronPDF, and introduces clearer separation of C#, native, and machine learning components.


 

Package Structure

 

Main Distribution

  • BarCode
    Default package for Windows platforms. This is the primary NuGet for general-purpose use on Windows.

  • BarCode.Linux, BarCode.MacOS, etc.
    OS-specific distributions. These will follow a naming convention similar to the approach already used in IronOCR and IronPDF.

 

Internal Package Layers

Each top-level Barcode package is composed of multiple internal subpackages:

1. BarCode.Slim

  • Contents:

    • Core C# code

    • The interop layer

    • PDF-related code

    • All C# third-party dependencies

  • Purpose: Acts as the central logic and binding layer that drives IronBarcode’s managed code features.

2. IronSoftware.ReaderInternals.XXX

  • Contents:

    • All native C++ code for:

      • Reading

      • Writing

      • Detecting barcodes

  • Platform-specific: Variants exist for Windows, Linux, Mac, etc.

3. BarCode.Detection

  • Contents:

    • Machine learning detection logic

    • Currently implemented in C# using ONNX Runtime

    • Will not be dependant on OS at the moment
  • Note: Will eventually be replaced by ncnn (a native C++ ML inference library), which will introduce OS-specific variants.

 

Exclusions for Mobile Platforms

 

Due to performance concerns and compatibility limitations on mobile platforms:

  • Barcode.Detection will NOT be included in:

    • Barcode.iOS

    • Barcode.Android

 

Benefits of the New Architecture

  • Modular separation between managed and native code

  • Clean OS-targeted packaging

  • Future-proofing for high-performance ML detection

  • Better alignment with other IronSoftware libraries

  • Improved maintainability and troubleshooting