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.
dotnet add package Steelax.Toolkit.HighPerformance
| 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 |
| 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 |
| Type | Namespace | Docs |
|---|---|---|
AsyncMarshal |
Steelax.Toolkit.HighPerformance |
📄 AsyncMarshal |
EventEnumeratorState / EventTaskState |
...Concurrency.Primitives |
📄 Result States |
CompleteSignal |
...Concurrency.Primitives |
📄 CompleteSignal |
- .NET 10.0+
- C# 13+
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.
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).
Licensed under the MIT License.