Skip to content

Repository files navigation

Steelax.Toolkit.HighPerformance

NuGet Downloads

Steelax.Toolkit.HighPerformance — a collection of high-performance primitives for building non-blocking, signal-driven async pipelines:

  • lock-free / lightweight concurrency — fan-in signaling, event-driven task/enumerator wrappers, task-slot sets;
  • low-allocation data structures — fixed-capacity deque and bitmask-based slot sets.

The library is the foundation for the Steelax.Pufflow dataflow pipelines, but every primitive is a standalone public API.


📦 Installation

dotnet add package Steelax.Toolkit.HighPerformance

📚 Documentation

Data Structures

Type Namespace Docs
Deque<T> Steelax.Toolkit.HighPerformance.Primitives 📄 Deque
RingCursor<T> Steelax.Toolkit.HighPerformance.Primitives 📄 RingCursor
SlotSet Steelax.Toolkit.HighPerformance.Primitives 📄 SlotSet
SegmentedQueue<T> Steelax.Toolkit.HighPerformance.Primitives 📄 SegmentedQueue

Concurrency Primitives

Type Namespace Docs
Conduit<T> ...Concurrency.Collections 📄 Conduit
FanInSlim ...Concurrency.Primitives 📄 FanInSlim
FanInSignalCallback ...Concurrency.Primitives 📄 FanInSignalCallback
BitTaskAny ...Concurrency.Primitives 📄 BitTaskAny
EventTask<T> / EventTask ...Concurrency.Primitives 📄 EventTask
EventEnumerator<T> ...Concurrency.Primitives 📄 EventEnumerator

Helpers & Supporting Types

Type Namespace Docs
AsyncMarshal Steelax.Toolkit.HighPerformance 📄 AsyncMarshal
EventEnumeratorState / EventTaskState ...Concurrency.Primitives 📄 Result States
CompleteSignal ...Concurrency.Primitives 📄 CompleteSignal

🔗 Related


📋 Requirements

  • .NET 10.0+
  • C# 13+

🛠️ Build & Test

dotnet restore
dotnet build --configuration Release
dotnet test

The repository is a multi-project solution:

Project Path Purpose
Library src/Steelax.Toolkit.HighPerformance The package source
Tests tests/Steelax.Toolkit.HighPerformance.Tests xUnit v3 unit tests
Exploration tests/Steelax.Toolkit.HighPerformance.Exploration Behavior exploration of async enumerators / ValueTask
Benchmarks benchmarks/Steelax.Toolkit.HighPerformance.Benchmarks BenchmarkDotNet benchmarks (dotnet run -c Release)

NuGet package versions are managed centrally via Directory.Packages.props; shared build metadata (authors, license, SourceLink) lives in Directory.Build.props.

🚀 CI / Release

The main.yml workflow builds, runs tests, packs, and — on v* tags — publishes the package to NuGet. Versioning is driven by GitVersion (GitHubFlow, continuous deployment).

📄 License

Licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages