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.
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.
- 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
The projects support the following platforms:
- ARM64
- x64
- x86
- AnyCPU
Both Debug and Release configurations are available for all platforms.
To install the libraries as NuGet packages, you need to add the GitHub Packages repository to your NuGet configuration.
- 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
Add the NuGet source using the following command:
dotnet nuget add source --name GitHub-KiarashMinoo --source https://nuget.pkg.github.com/KiarashMinoo/index.jsonThe 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>
<!-- Public nuget.org first -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<!-- OWNER = org or user that OWNS the package feed -->
<add key="github" value="https://nuget.pkg.github.com/KiarashMinoo/index.json" />
</packageSources>
<!-- Put credentials here or (better) in user-level NuGet.config -->
<packageSourceCredentials>
<github>
<add key="Username" value="KiarashMinoo" />
<add key="ClearTextPassword" value="your-github-token" />
</github>
</packageSourceCredentials>
<!-- Optional but recommended: only send your private IDs to GitHub -->
<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.
To verify that the GitHub Packages repository is correctly configured, you can use the following command in the terminal:
dotnet nuget list sourceThis 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
You can now install the packages using the following commands:
For ThunderPropagator.Application:
dotnet add package ThunderPropagator.ApplicationFor ThunderPropagator.Infrastructure:
dotnet add package ThunderPropagator.InfrastructureAlternatively, you can install the packages via the NuGet Package Manager in Visual Studio.
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
The following areas are fully documented with types, files, diagrams, and examples:
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 β 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
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 | 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 |
- β 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
This project is licensed under the MIT License.
Β© 2024-2025 ThunderPropagator. All rights reserved.