ThunderPropagator.Feeviders.RabbitMQ.SharedKernel 1.0.1-beta.1

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

ThunderPropagator Feeviders

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 for both Feeders (message consumption) and Providers (message publishing) across multiple messaging systems, 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 from GitHub Packages.


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.
  • Multiple Messaging Systems: Support for 12+ messaging systems including Kafka, RabbitMQ, WebSocket, and more.

Whether you're building real-time analytics, live event processing, or IoT data pipelines, ThunderPropagator empowers you to deliver maximum impact with minimal effort.


Documentation

πŸ“– Complete Documentation - Comprehensive framework documentation with API references, diagrams, examples, and best practices.

Documentation Catalog

This repository publishes generated documentation under /docs. The catalog below links to messaging systems and key components.

SharedKernel Types:15 Files:25 Diagrams:βœ“

Core abstractions and base implementations for feeders and providers.

Kafka Types:12 Files:18 Diagrams:βœ“

High-throughput event streaming with Confluent.Kafka, Schema Registry, and Avro support.

RabbitMQ Types:15 Files:24 Diagrams:βœ“

AMQP-based messaging with complex routing, exchanges, and queues.

NATS Types:15 Files:24 Diagrams:βœ“

Cloud-native messaging with JetStream persistence and key-value stores.

Pulsar Types:15 Files:24 Diagrams:βœ“

Multi-tenant pub-sub with geo-replication and tiered storage.

MQTT Types:15 Files:24 Diagrams:βœ“

Lightweight IoT messaging protocol with Quality of Service guarantees.

ActiveMQ Types:15 Files:24 Diagrams:βœ“

Apache ActiveMQ JMS messaging with enterprise integration patterns.

RedisPubSub Types:10 Files:14 Diagrams:βœ“

In-memory pub/sub for low-latency messaging and caching.

WebSocket Types:10 Files:14 Diagrams:βœ“

Real-time bidirectional web communication over persistent connections.

WebApi Types:10 Files:14 Diagrams:βœ“

HTTP/REST API consumption and publishing with resilience patterns.

TcpSocket Types:15 Files:24 Diagrams:βœ“

Low-level TCP socket protocol with custom framing and binary protocols.

UdpClient Types:10 Files:14 Diagrams:βœ“

UDP datagram protocol for fire-and-forget messaging.


Total: 12 Systems | 30 Projects | 167+ Types | 270+ Files | 33+ Diagrams
Last generated: December 29, 2025


Features

  • Cross-Platform Support: Works seamlessly on ARM64, x64, x86, and AnyCPU platforms.
  • .NET Compatibility: Fully compatible with .NET 9 and .NET 8.
  • Debug and Release Configurations: Pre-configured for both debug and release builds.
  • High Performance: Optimized for low-latency, high-throughput streaming.
  • Cloud-Native: Designed for modern cloud environments with built-in scalability and resilience.
  • NuGet Packages: Easily installable via a custom NuGet 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 the Custom NuGet Repository

To install the libraries as NuGet packages, you need to add the custom NuGet repository to your NuGet configuration.

Using Visual Studio:
  1. Open Visual Studio.
  2. Go to Tools > NuGet Package Manager > Package Manager Settings.
  3. Under Package Sources, click the + button to add a new source.
  4. Enter the following details:
  • Name: ThunderPropagator
  • Source: https://nuget.thunderpropagator.com/v3/index.json
  1. Click Update and then OK.
Using the Command Line:

Add the NuGet source using the following command:

dotnet nuget add source --name ThunderPropagator --source https://nuget.thunderpropagator.com/v3/index.json
Create or Update nuget.config

If you don’t already have a nuget.config file in your project or solution directory, create one. If you do, update it to include the custom repository.

Here’s an example of what the nuget.config file should look like:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    
    <add key="ThunderPropagator" value="https://nuget.pkg.github.com/KiarashMinoo/index.json" />
  </packageSources>
</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:

dotnet nuget list source

You should see output similar to:

Registered Sources:
  1.  nuget.org [Enabled]
      https://api.nuget.org/v3/index.json
  2.  ThunderPropagator [Enabled]
      https://nuget.pkg.github.com/KiarashMinoo/index.json

Step 3: Build and Restore Packages

After configuring the NuGet sources, restore and build your project:

dotnet restore
dotnet build -c Release

Step 4: Install ThunderPropagator Packages

You can now install the messaging system packages you need. Examples:

High-throughput streaming (Kafka):

dotnet add package ThunderPropagator.Feeders.Kafka
dotnet add package ThunderPropagator.Providers.DotNet.Kafka

Reliable messaging (RabbitMQ):

dotnet add package ThunderPropagator.Feeders.RabbitMQ
dotnet add package ThunderPropagator.Providers.DotNet.RabbitMQ

Real-time web communication (WebSocket):

dotnet add package ThunderPropagator.Feeders.WebSocket
dotnet add package ThunderPropagator.Providers.DotNet.WebSocket

See Documentation for complete package listing.


Quick Start

1. Basic Message Producer

// Define your message
public class OrderEvent : RabbitMQProviderMessage
{
    public string OrderId { get; set; }
    public decimal Amount { get; set; }
    public DateTime OrderDate { get; set; }
}

// Define configuration
public class OrderConfig : RabbitMQProviderConfiguration { }

// Register in DI container
services.AddRabbitMQProvider<OrderEvent, OrderConfig>(
    configuration, "Messaging:RabbitMQ");

// Use in your service
public class OrderService
{
    private readonly IProvider<OrderEvent> _provider;
    
    public OrderService(IProvider<OrderEvent> provider)
    {
        _provider = provider;
    }
    
    public async Task ProcessOrderAsync(Order order)
    {
        await _provider.ExecuteAsync(new OrderEvent
        {
            OrderId = order.Id,
            Amount = order.Total,
            OrderDate = DateTime.UtcNow
        });
    }
}

2. Configuration Example

{
  "Messaging": {
    "RabbitMQ": {
      "HostName": "localhost",
      "Port": 5672,
      "UserName": "guest",
      "Password": "guest",
      "ExchangeName": "orders",
      "QueueName": "order-processing",
      "RoutingKey": "order.created"
    }
  }
}

πŸ“– View Complete Documentation for detailed examples, configuration options, and best practices.


License

This project is licensed under the Apache-2.0 License.

Β© 2024 ThunderPropagator Corporation. All rights reserved.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1-beta.1 47 12/29/2025

- fix: revert version to 1.0.0 from 1.0.1-beta.3