ThunderPropagator.Application
1.0.1-beta.17
dotnet add package ThunderPropagator.Application --version 1.0.1-beta.17
NuGet\Install-Package ThunderPropagator.Application -Version 1.0.1-beta.17
<PackageReference Include="ThunderPropagator.Application" Version="1.0.1-beta.17" />
<PackageVersion Include="ThunderPropagator.Application" Version="1.0.1-beta.17" />
<PackageReference Include="ThunderPropagator.Application" />
paket add ThunderPropagator.Application --version 1.0.1-beta.17
#r "nuget: ThunderPropagator.Application, 1.0.1-beta.17"
#:package ThunderPropagator.Application@1.0.1-beta.17
#addin nuget:?package=ThunderPropagator.Application&version=1.0.1-beta.17&prerelease
#tool nuget:?package=ThunderPropagator.Application&version=1.0.1-beta.17&prerelease
ThunderPropagator
ThunderPropagator is a cutting-edge software solution designed to redefine real-time data streaming. Our mission is to provide effortless, blazingly fast, and cloud-native streaming capabilities for maximum impact. This repository contains the foundational libraries, ThunderPropagator.Application and ThunderPropagator.Infrastructure, which empower developers to build scalable, high-performance streaming applications with ease.
These libraries support .NET 9 and .NET 8, and are configured to work across multiple platforms, including ARM64, x64, x86, and AnyCPU. They are available as NuGet packages and can be installed from GitHub Packages:
https://nuget.pkg.github.com/KiarashMinoo/index.json.
Table of Contents
Overview
ThunderPropagator is designed to revolutionize real-time data streaming by providing:
- Effortless Integration: Simple and intuitive APIs for seamless integration into your applications.
- Blazingly Fast Performance: Optimized for low-latency, high-throughput streaming.
- Cloud-Native Architecture: Built for modern cloud environments, enabling scalability and resilience.
- Cross-Platform Support: Compatible with ARM64, x64, x86, and AnyCPU platforms.
Whether you're building real-time analytics, live event processing, or IoT data pipelines, ThunderPropagator empowers you to deliver maximum impact with minimal effort.
Features
- Multi-Protocol Support: WebSockets, MQTT 5.0, QUIC, WebTransport, and custom streaming protocols
- Cross-Platform Support: Works seamlessly on ARM64, x64, x86, and AnyCPU platforms
- .NET Compatibility: Fully compatible with .NET 9 and .NET 8
- High Performance: Optimized for low-latency, high-throughput streaming with backpressure control
- Cloud-Native Architecture: Built for modern cloud environments with built-in scalability and resilience
- Real-time Channels: Advanced channel management with subscription handling and message distribution
- Comprehensive Documentation: 100% coverage with 60+ documented modules
- GitHub Packages: Easily installable via GitHub Packages repository
Supported Platforms
The projects support the following platforms:
- ARM64
- x64
- x86
- AnyCPU
Both Debug and Release configurations are available for all platforms.
Installation
Step 1: Add GitHub Packages NuGet Repository
To install the libraries as NuGet packages, you need to add the GitHub Packages repository to your NuGet configuration.
Using Visual Studio:
- Open Visual Studio
- Go to Tools > NuGet Package Manager > Package Manager Settings
- Under Package Sources, click the + button to add a new source
- Enter the following details:
- Name:
GitHub-KiarashMinoo - Source:
https://nuget.pkg.github.com/KiarashMinoo/index.json
- Name:
- Click Update and then OK
Using the Command Line:
Add the NuGet source using the following command:
dotnet nuget add source --name GitHub-KiarashMinoo --source https://nuget.pkg.github.com/KiarashMinoo/index.json
Create or Update nuget.config
The repository includes a nuget.config file configured for GitHub Packages. If you need to create your own, here's the configuration:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="github" value="https://nuget.pkg.github.com/KiarashMinoo/index.json" />
</packageSources>
<packageSourceCredentials>
<github>
<add key="Username" value="KiarashMinoo" />
<add key="ClearTextPassword" value="your-github-token" />
</github>
</packageSourceCredentials>
<packageSourceMapping>
<packageSource key="github">
<package pattern="ThunderPropagator.*" />
</packageSource>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
Place the nuget.config file in the root of your solution or project directory. This ensures that all projects in the solution can access the GitHub Packages repository.
Step 2: Verify the Configuration
To verify that the GitHub Packages repository is correctly configured, you can use the following command in the terminal:
dotnet nuget list source
This will list all configured NuGet sources. You should see something like this in the output:
Registered Sources:
1. nuget.org [Enabled]
https://api.nuget.org/v3/index.json
2. github [Enabled]
https://nuget.pkg.github.com/KiarashMinoo/index.json
Step 3: Install the NuGet Packages
You can now install the packages using the following commands:
For ThunderPropagator.Application:
dotnet add package ThunderPropagator.Application
For ThunderPropagator.Infrastructure:
dotnet add package ThunderPropagator.Infrastructure
Alternatively, you can install the packages via the NuGet Package Manager in Visual Studio.
Documentation
Comprehensive documentation is available in the docs/ directory. The documentation is auto-generated from source code with complete API references, architecture diagrams, usage examples, and best practices.
📚 Documentation Portal — Main entry point with quick start guide and architecture overview
Documentation Catalog
The following areas are fully documented with types, files, diagrams, and examples:
Application Layer Types:80+ Files:112 Diagrams:✓
Application — Core abstractions for channels, feeders, pipelines, and subscriptions
- Channels
Types:8Files:13Diagrams:✓— Real-time channel management with subscriptions and snapshots- ChannelProgramsDescriptors
Types:11Files:13Diagrams:✓— Field schema definitions and type descriptors- DataTypes
Types:13Files:13Diagrams:✗— Type-specific descriptor implementations
- DataTypes
- Contexts
Types:4Files:4Diagrams:✓— Request/response/push context objects - Exceptions
Types:6Files:6Diagrams:✗— Channel-specific exception types - Metadata
Types:5Files:8Diagrams:✓— Authentication, authorization, snapshot configuration - Snapshots
Types:3Files:6Diagrams:✓— State persistence and recovery handlers- Recovery
Types:2Files:2Diagrams:✗— Recovery handler abstractions
- Recovery
- Subscribers
Types:8Files:8Diagrams:✓— Subscription filtering and management
- ChannelProgramsDescriptors
- Collections
Types:6Files:6Diagrams:✗— Specialized collections for routing and forms - Events
Types:1Files:1Diagrams:✓— Event interfaces and implementations - Feeders
Types:10Files:12Diagrams:✓— Data source abstractions feeding channels - HealthChecks
Types:2Files:2Diagrams:✗— Health monitoring interfaces - Helpers
Types:3Files:3Diagrams:✗— Utility classes (C# scripting, request context) - LicenseManagers
Types:1Files:1Diagrams:✗— License validation interop - Logging
Types:1Files:1Diagrams:✗— Logging utilities - Metrics
Types:3Files:3Diagrams:✗— Telemetry and observability - Pipelines
Types:1Files:1Diagrams:✓— Middleware for request/response processing- Pushers
Types:2Files:3Diagrams:✗— Push pipeline abstractions - Receivers
Types:4Files:7Diagrams:✓— Receive pipeline abstractions- Attributes
Types:3Files:3Diagrams:✗— Pipeline attribute decorators
- Attributes
- Pushers
Infrastructure Layer Types:45+ Files:68 Diagrams:✓
Infrastructure — Protocol implementations and connection management
- Channels
Types:7Files:11Diagrams:✓— Infrastructure channel coordination- Snapshots/Recovery
Types:5Files:5Diagrams:✓— Concrete recovery implementations (Redis, MongoDB, PostgreSQL)
- Snapshots/Recovery
- Contexts
Types:4Files:4Diagrams:✓— Client request/response contexts - Events
Types:2Files:2Diagrams:✓— Infrastructure event handlers - Exceptions
Types:1Files:1Diagrams:✗— Infrastructure-specific exceptions - Extensions
Types:12Files:13Diagrams:✓— DI and service registration - Feeders
Types:5Files:5Diagrams:✓— Infrastructure-level feeders - Pipelines
Types:2Files:2Diagrams:✓— Pipeline hierarchy invokers - Protocols
Types:13Files:13Diagrams:✓— Protocol handlers and containers- InfiniteDataStream
Types:3Files:3Diagrams:✗— Custom binary streaming - Mqtt
Types:3Files:3Diagrams:✓— MQTT 5.0 broker integration - Quic
Types:3Files:3Diagrams:✓— QUIC protocol support - WebSockets
Types:3Files:3Diagrams:✓— WebSocket connection handling - WebTransport
Types:3Files:3Diagrams:✓— WebTransport over HTTP/3
- InfiniteDataStream
- Pushers
Types:2Files:2Diagrams:✗— Push pipeline implementations - Receivers — Receive pipeline implementations
- Pipelines — Pipeline catalog and routing
- Authentication
Types:1Files:1Diagrams:✓— Authentication handlers (Basic, OAuth2) - Authorization
Types:1Files:1Diagrams:✓— Authorization handlers (Role, Policy) - PingPong
Types:1Files:1Diagrams:✗— Health check ping/pong - RequestMetadata
Types:1Files:1Diagrams:✓— Channel metadata retrieval - Subscribe
Types:1Files:1Diagrams:✓— Subscription management - Unsubscribe
Types:1Files:1Diagrams:✓— Unsubscription handling
- Authentication
- Pipelines — Pipeline catalog and routing
Automation & Tooling
scripts Scripts:8 Diagrams:✓ — PowerShell automation
- CI/CD Scripts — Automated versioning, building, and publishing
- Delete-GitHubPackages.ps1 — Package cleanup with wildcard filtering
- Generate-Changelog.ps1 — Keep-a-Changelog format generator
- Generate-ReleaseNotes.ps1 — Advanced release notes with diff analysis
- pack-all-platforms.ps1 — Parallel multi-platform builds
- pack-solution.ps1 — Core .NET pack worker
- publish-packages.ps1 — NuGet publishing with visibility control
- update-version.ps1 — Beta/release version management
Package Documentation
| Package | Version | Description | Documentation |
|---|---|---|---|
| ThunderPropagator.Application | 1.0.1-beta.12 | Core application layer with channels, feeders, pipelines | Application Layer |
| ThunderPropagator.Infrastructure | 1.0.1-beta.12 | Infrastructure layer with protocol implementations | Infrastructure Layer |
| ThunderPropagator.BuildingBlocks | 1.0.1-beta.12 | Core building blocks and utilities | Dependency |
| ThunderPropagator.BuildingBlocks.Modules | 1.0.1-beta.12 | Module system and DI extensions | Dependency |
Documentation Features
- ✅ Complete API Coverage — All public types documented with signatures, descriptions, and usage
- ✅ Architecture Diagrams — Mermaid diagrams for flows, sequences, and class structures
- ✅ Realistic Examples — Production-ready code samples (no test code)
- ✅ Cross-References — Extensive linking between related documentation
- ✅ Performance Notes — Optimization tips and scalability guidance
- ✅ Protocol Guides — WebSocket, MQTT 5.0, QUIC, WebTransport details
- ✅ Dependency Tracking — ThunderPropagator package usage documented per area
Last generated: December 28, 2025
License
This project is licensed under the MIT License.
© 2024-2025 ThunderPropagator. All rights reserved.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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 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 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. |
-
net10.0
- Castle.Core (>= 5.2.1)
- Hangfire.Core (>= 1.8.23)
- Microsoft.AspNetCore.Authorization (>= 10.0.7)
- Microsoft.CodeAnalysis.CSharp.Scripting (>= 5.3.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.7)
- OpenTelemetry.Api (>= 1.15.3)
- ThunderPropagator.BuildingBlocks (>= 1.0.1-beta.26)
-
net8.0
- Castle.Core (>= 5.2.1)
- Hangfire.Core (>= 1.8.23)
- Microsoft.AspNetCore.Authorization (>= 8.0.26)
- Microsoft.CodeAnalysis.CSharp.Scripting (>= 5.3.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 8.0.26)
- OpenTelemetry.Api (>= 1.15.3)
- ThunderPropagator.BuildingBlocks (>= 1.0.1-beta.26)
-
net9.0
- Castle.Core (>= 5.2.1)
- Hangfire.Core (>= 1.8.23)
- Microsoft.AspNetCore.Authorization (>= 9.0.15)
- Microsoft.CodeAnalysis.CSharp.Scripting (>= 5.3.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 9.0.15)
- OpenTelemetry.Api (>= 1.15.3)
- ThunderPropagator.BuildingBlocks (>= 1.0.1-beta.26)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on ThunderPropagator.Application:
| Package | Downloads |
|---|---|
|
ThunderPropagator
ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact |
|
|
ThunderPropagator.ARM64
ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact |
|
|
ThunderPropagator.Debug
ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact |
|
|
ThunderPropagator.Debug.ARM64
ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact |
|
|
ThunderPropagator.Debug.x64
ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.1-beta.17 | 289 | 5/12/2026 |
| 1.0.1-beta.16 | 76 | 2/8/2026 |
| 1.0.1-beta.15 | 75 | 12/28/2025 |
| 1.0.1-beta.14 | 69 | 12/28/2025 |
| 1.0.1-beta.13 | 72 | 12/28/2025 |
| 1.0.1-beta.3 | 63 | 12/28/2025 |
- [ThunderPropagator#4] Migrates to shared CI, cleans repo and updates dependencies