BeltRunner.Core
1.0.0
dotnet add package BeltRunner.Core --version 1.0.0
NuGet\Install-Package BeltRunner.Core -Version 1.0.0
<PackageReference Include="BeltRunner.Core" Version="1.0.0" />
<PackageVersion Include="BeltRunner.Core" Version="1.0.0" />
<PackageReference Include="BeltRunner.Core" />
paket add BeltRunner.Core --version 1.0.0
#r "nuget: BeltRunner.Core, 1.0.0"
#:package BeltRunner.Core@1.0.0
#addin nuget:?package=BeltRunner.Core&version=1.0.0
#tool nuget:?package=BeltRunner.Core&version=1.0.0
BeltRunner
BeltRunner is a small framework that helps when your application needs to execute multiple processing steps in sequence. It packages the processing itself into manageable components and connects them through controlled data flow, while also providing features such as UI-friendly notifications and cancellation handling.
BeltRunner focuses on a pipeline-style execution model and does not provide presentation features such as a UI. It communicates with your application through Rx (Reactive Extensions).
BeltRunner.Core is the main package that provides the runtime and public API surface for that workflow model.
What this library is for
For example, imagine that you need to process a text file. If you only need to run the processing and present the final result to the user, you may not need this framework at all. However, if your application needs to show progress through a UI or allow user intervention when an abnormal condition occurs, this framework may help.
BeltRunner helps with the following:
- Manage each processing step and each processing target as components.
- Broadcast progress and state through Rx and retained collections.
- Provide a way to handle user intervention during processing.
- Pass cancellation requests into the running workflow.
Key Concepts
BeltRunner models processing through the following concepts:
- Host: The top-level BeltRunner component that manages the other components listed below.
- Phase: A component that represents one processing step and is implemented by the user. This concept makes it easier for the framework to recognize and manage the processing itself.
- Unit: A component that wraps one processing target so that the framework can track and handle it.
- Plan: A design that describes the order in which phases run.
- Run: A component that represents the state of a running plan. This separates design (
Plan) from execution (Run) and allows the framework to provide additional runtime features. - Artifact: An object used to make the data exchanged between phases explicit.
Install
BeltRunner is distributed through NuGet.
Run the following command to install it, or search for BeltRunner.Core in your IDE's NuGet package manager.
dotnet add package BeltRunner.Core
As an optional addition, the Roslyn analyzer package BeltRunner.Analysis is also available (https://nuget.org/packages/BeltRunner.Analysis).
It checks code that uses BeltRunner and provides suggestions when appropriate.
Run the following command to install it, or search for BeltRunner.Analysis in your IDE's NuGet package manager.
dotnet add package BeltRunner.Analysis
Package Information
- Target Framework:
.NET Standard 2.0 - Dependencies:
NLog: Used by the framework for optional internal loggingSystem.Reactive: Provides the Rx-based observable surface used by BeltRunner runtime APIs
Git Repository
For the source code, samples, and documentation, see the repository in GitHub:
github.com/mitocaelum/BeltRunner
Logging with NLog
BeltRunner.Core includes internal framework logging that assumes NLog.
If the host application configures NLog rules for BeltRunner loggers, those logs can be captured.
However, this package does not provide an application-specific NLog configuration by default. It does not automatically decide where logs should be written, and it does not configure your logging pipeline for you.
If you want BeltRunner framework logs, configure NLog in your own application. If you do not, BeltRunner still runs normally.
License
BeltRunner is released under the following license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- NLog (>= 6.1.1)
- System.Reactive (>= 6.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on BeltRunner.Core:
| Package | Downloads |
|---|---|
|
BeltRunner.Analysis
Roslyn analyzers for BeltRunner that guide phase authors toward recommended APIs and highlight low-level usage patterns. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 138 | 5/2/2026 |