Kern 2.1.0

dotnet add package Kern --version 2.1.0
                    
NuGet\Install-Package Kern -Version 2.1.0
                    
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="Kern" Version="2.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kern" Version="2.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Kern" />
                    
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 Kern --version 2.1.0
                    
#r "nuget: Kern, 2.1.0"
                    
#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 Kern@2.1.0
                    
#: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=Kern&version=2.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Kern&version=2.1.0
                    
Install as a Cake Tool

🌱 Kern

⚠️ Warning: This library is under active development.

APIs, structures, and behaviors may change without notice. Not recommended for production use until a stable version is released.

Kern is a modular utility library for .NET that simplifies core backend patterns like asynchronous pipelines, concurrent-safe queues, AWS S3 access, and error modeling. It also offers clean ASP.NET Core integration for standardized responses and FluentValidation filtering.

✨ Features

🧠 Pipeline

A simple, composable pipeline runner for chaining asynchronous processing steps with support for early exits via PipelineResult.

var pipeline = Pipeline
    .Create<string>()
    .AddStep(async input =>
    {
        if (string.IsNullOrWhiteSpace(input))
            return PipelineResult<string>.Fail(new InvalidInputError("Empty input"));

        return PipelineResult<string>.Success(input.ToUpper());
    });

var result = await pipeline.Run("hello");

📥 Queue

Thread-safe task queue manager that allows parallel processing by group but ensures serial execution within the same group, ideal for background job orchestration.

await queue.QueueTaskAsync<SomeTask>();

☁️ S3 Helper

Abstraction over AWS S3 for uploading, downloading, and deleting objects — supports both streams and file paths, and can generate presigned URLs.

await s3.GetObjectAsync(objectName);

📄 License

Licensed under the GNU General Public License v3.0. See LICENSE for full terms.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Kern:

Package Downloads
Kern.AspNetCore

Library for ASP Minimal API to make development faster

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.0 187 6/21/2025
2.0.1 216 2/27/2025
2.0.0 216 2/25/2025
1.2.0 245 4/17/2024
1.1.0 224 3/16/2024
1.0.0 739 6/12/2023

Add pipeline pattern programming feature