LinML.Catalog 0.5.1

dotnet add package LinML.Catalog --version 0.5.1
                    
NuGet\Install-Package LinML.Catalog -Version 0.5.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LinML.Catalog" Version="0.5.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LinML.Catalog" Version="0.5.1" />
                    
Directory.Packages.props
<PackageReference Include="LinML.Catalog" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LinML.Catalog --version 0.5.1
                    
#r "nuget: LinML.Catalog, 0.5.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LinML.Catalog@0.5.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LinML.Catalog&version=0.5.1
                    
Install as a Cake Addin
#tool nuget:?package=LinML.Catalog&version=0.5.1
                    
Install as a Cake Tool

LinML.Catalog

Execution provider catalog for ONNX Runtime on Linux.

NuGet License: MIT

LinML.Catalog is the Linux counterpart to the Windows ML (WinML) ExecutionProviderCatalog. It automates vendoring, SHA-256 integrity verification, dynamic registration, and session attachment for external plugin execution providers on Linux.

Supported Execution Providers

LinML.Catalog provides unified discovery, readiness probing, and session attachment across both built-in and external plugin execution providers:

Built-In Providers (ProviderSource.BuiltIn)
  • CPU (CPUExecutionProvider): Baseline execution provider, always ready.
  • CUDA (CUDAExecutionProvider): Probed via host runtime (e.g. Microsoft.ML.OnnxRuntime.Gpu) and verified before session append.
  • Classic TensorRT (TensorrtExecutionProvider): Probed via host runtime and verified before session append.
Plugin Providers (ProviderSource.Plugin)
  • OpenVINO Plugin EP (onnxruntime-ep-openvino 1.6.1): Pinned PyPI wheel automated vendoring, SHA-256 verification, and registration.
  • TensorRT-RTX Plugin EP (onnxruntime-ep-nv-tensorrt-rtx 0.4.0): Pinned PyPI wheel automated vendoring, SHA-256 verification, SONAME symlink management, and registration (on WSL2 with GPU passthrough the catalog installs and registers the LinML-hosted patched build instead, default on; opt out with LINML_TRT_RTX_WSL2=0; TRT_RTX_CUSTOM_EP overrides both). In containers the install root is $HOME/.local/linml-deps unless Create(root) is used; mount a volume there to keep installs across runs.
  • MIGraphX Plugin EP (onnxruntime-ep-amdgpu 2611.1): Pinned standalone plugin release archive vendoring, SHA-256 verification, and registration.

Installation

dotnet add package LinML.Catalog

Prerequisite: LinML.Catalog references Microsoft.ML.OnnxRuntime.Managed to avoid native library conflicts. The consuming host application must supply a native ONNX Runtime package (such as Microsoft.ML.OnnxRuntime.Gpu or Microsoft.ML.OnnxRuntime).


Usage

using LinML.Catalog;
using LinML.Contracts;
using Microsoft.ML.OnnxRuntime;

// 1. Get default catalog instance
IExecutionProviderCatalog catalog = ExecutionProviderCatalog.GetDefault();

// 2. Discover OpenVINO plugin
IExecutionProvider openVino = catalog.Find(ProviderId.OpenVino)!;

// 3. Ensure plugin binaries are ready (downloads & verifies SHA-256 checksum)
ProviderEnsureResult ensured = await openVino.EnsureReadyAsync(new EnsureOptions(AllowDownloads: true));

// 4. Configure SessionOptions with verified plugin EP
using var sessionOptions = new SessionOptions();
if (ensured.IsReady)
{
    ProviderAppendResult result = sessionOptions.AppendFromCatalog(openVino, [OrtHardwareDeviceType.CPU]);
}

// 5. Create ONNX Runtime session
using var session = new InferenceSession("model.onnx", sessionOptions);

Design Principles

  • No Conflicting Binaries: References only Microsoft.ML.OnnxRuntime.Managed. The host application supplies the native ONNX Runtime (e.g. Microsoft.ML.OnnxRuntime.Gpu), avoiding duplicate libonnxruntime.so collisions.
  • Integrity Verified: Plugin binaries are verified against strict cryptographic SHA-256 digests.
  • Shared Registry: Shares the PluginLibraryRegistry with the LinML CLI.

Documentation & Repository

For more details, CLI tools, and architecture documentation, visit the LinML GitHub Repository.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.5.1 884 10/13/2026
0.5.0 95 10/13/2026
0.4.2 90 10/13/2026
0.4.1 212 10/12/2026
0.4.0 140 10/12/2026
0.3.0 83 10/12/2026
0.2.0 224 10/12/2026
0.1.0 328 10/11/2026