VOOZH about

URL: https://www.nuget.org/packages/ThunderPropagator.BuildingBlocks.Debug/

โ‡ฑ NuGet Gallery | ThunderPropagator.BuildingBlocks.Debug 1.0.1-beta.102


๏ปฟ

๐Ÿ‘ Image
ThunderPropagator.BuildingBlocks.Debug 1.0.1-beta.102

This is a prerelease version of ThunderPropagator.BuildingBlocks.Debug.
dotnet add package ThunderPropagator.BuildingBlocks.Debug --version 1.0.1-beta.102
 
 
NuGet\Install-Package ThunderPropagator.BuildingBlocks.Debug -Version 1.0.1-beta.102
 
 
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.BuildingBlocks.Debug" Version="1.0.1-beta.102" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ThunderPropagator.BuildingBlocks.Debug" Version="1.0.1-beta.102" />
 
Directory.Packages.props
<PackageReference Include="ThunderPropagator.BuildingBlocks.Debug" />
 
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.BuildingBlocks.Debug --version 1.0.1-beta.102
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ThunderPropagator.BuildingBlocks.Debug, 1.0.1-beta.102"
 
 
#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.BuildingBlocks.Debug@1.0.1-beta.102
 
 
#: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.BuildingBlocks.Debug&version=1.0.1-beta.102&prerelease
 
Install as a Cake Addin
#tool nuget:?package=ThunderPropagator.BuildingBlocks.Debug&version=1.0.1-beta.102&prerelease
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

ThunderPropagator BuildingBlocks (Project ARC)

ThunderPropagator BuildingBlocks (Project ARC) is a comprehensive .NET library providing production-ready, reusable components for building high-performance, cloud-native applications. Targets .NET 8.0, 9.0, and 10.0 with multi-platform support (AnyCPU, x86, x64, ARM64).


๐Ÿ“š Documentation

Main Documentation Hub:

Documentation Catalog

Application Layer (Core Building Blocks)
Area Types Files Diagrams Description
15 12 โœ“ Core abstractions (FeederMessage, ServiceConfiguration, Telemetry)
โ”œโ”€ 2 2 โœ“ JSON serialization control and member ignore attributes
โ”œโ”€ 1 1 โœ— X.509 certificate handling and management
โ”œโ”€ 5 5 โœ— Property change tracking with observable patterns
โ”œโ”€ 3 3 โœ“ AES/RSA encryption and password generation
โ”œโ”€ 3 3 โœ“ LinkedArray, BindingDictionary, GenericOrderedDictionary
โ”œโ”€ 3 3 โœ— Correlation ID management for distributed tracing
โ”œโ”€ 4 4 โœ— Common enumerations (AuthenticationType, CastType, DataType)
โ”œโ”€ 18 18 โœ“ Serialization, collection, string, date/time utilities
โ”œโ”€ 2 2 โœ— JWT identity helper utilities
โ”œโ”€ 5 5 โœ“ Base classes (DisposableObject, EquatableObject, NotifiableObject)
โ””โ”€ 4 4 โœ— Serialization abstractions and Kafka serializer types
Infrastructure Layer (System-Level Components)
Area Types Files Diagrams Description
0 1 โœ“ Infrastructure layer entry point
โ”œโ”€ 0 0 โœ— ASP.NET Core health check integrations
โ”œโ”€ 0 0 โœ— System-level utilities and abstractions
โ”‚ โ””โ”€ 2 2 โœ— Network performance monitoring
โ””โ”€ 4 4 โœ“ Cross-platform resource monitoring
โ”œโ”€ 2 2 โœ— Metrics client abstractions
โ”œโ”€ 3 2 โœ— Battery status, charge, health (Windows/macOS/Linux)
โ”œโ”€ 4 4 โœ— CPU usage and temperature monitoring
โ”œโ”€ 6 4 โœ— Disk health (SMART) and I/O performance
โ”œโ”€ 3 2 โœ— GPU utilization, memory, temperature
โ”œโ”€ 2 2 โœ— System and process memory usage
โ””โ”€ 2 2 โœ— System drive enumeration and space

Total: 100+ types, 92 files, 25+ diagrams created

Last generated: December 28, 2025


๐Ÿ“ฆ NuGet Installation (GitHub Packages)

ThunderPropagator packages are hosted on GitHub Packages: https://nuget.pkg.github.com/KiarashMinoo/index.json

Configure NuGet Source

Option 1: nuget.config (recommended)


<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>
 <packageSourceMapping>
 <packageSource key="github">
 <package pattern="ThunderPropagator.*" />
 </packageSource>
 <packageSource key="nuget.org">
 <package pattern="*" />
 </packageSource>
 </packageSourceMapping>
 <packageSourceCredentials>
 <github>
 <add key="Username" value="YOUR_GITHUB_USERNAME" />
 <add key="ClearTextPassword" value="YOUR_GITHUB_PAT" />
 </github>
 </packageSourceCredentials>
</configuration>

Option 2: CLI

dotnet nuget add source https://nuget.pkg.github.com/KiarashMinoo/index.json \
 --name github \
 --username YOUR_GITHUB_USERNAME \
 --password YOUR_GITHUB_PAT \
 --store-password-in-clear-text

Install Packages

# Core application building blocks
dotnet add package ThunderPropagator.BuildingBlocks.Application

# Infrastructure components
dotnet add package ThunderPropagator.BuildingBlocks.Infrastructure

๐ŸŽฏ Quick Start

FeederMessage Pattern

using ThunderPropagator.BuildingBlocks.Application;

public class OrderMessage : FeederMessage
{
 public Guid OrderId
 {
 get => GetValueOrDefault(Guid.NewGuid());
 set => SetValue(value);
 }
 
 public decimal Amount
 {
 get => GetValueOrDefault(0m);
 set => SetValue(value);
 }
}

var order = new OrderMessage
{
 OrderId = Guid.NewGuid(),
 Amount = 99.99m,
 CorrelationId = "req-12345"
};

System Resource Monitoring

using ThunderPropagator.BuildingBlocks.Infrastructure.SystemResourceMonitor;

services.AddSystemResourceMonitor(options =>
{
 options.EnableCpuMetrics = true;
 options.EnableMemoryMetrics = true;
 options.EnableDiskHealth = true;
 options.DefaultSamplingWindowMs = 500;
});

// Inject and use
public class MonitoringService
{
 private readonly ISystemResourceMonitor _monitor;
 
 public MonitoringService(ISystemResourceMonitor monitor)
 {
 _monitor = monitor;
 }
 
 public async Task<SystemResourceMonitorMetrics> GetMetricsAsync()
 {
 return await _monitor.GetMetricsAsync();
 }
}

Serialization Helpers

using ThunderPropagator.BuildingBlocks.Application.Helpers;

// JSON
var json = myObject.ToJson();
var obj = json.FromJson<MyType>();

// YAML
var yaml = myObject.ToYaml();

// ProtoBuf
var bytes = myObject.ToProtoBufBytes();

// MessagePack
var base64 = myObject.ToMessagePackBase64();

๐Ÿ›  Build & Test

# Restore dependencies
dotnet restore

# Build (Release)
dotnet build -c Release

# Run tests
dotnet test -c Release

# Package
dotnet pack -c Release -o artifacts/pkg

Multi-Platform Builds:

  • Platforms: AnyCPU, x86, x64, ARM64
  • Frameworks: net8.0, net9.0, net10.0

๐Ÿ“„ Available Packages

Package Version Description Documentation
ThunderPropagator.BuildingBlocks.Application 1.0.1-beta.* Core application building blocks (FeederMessage, ServiceConfiguration, Helpers, Serialization)
ThunderPropagator.BuildingBlocks.Infrastructure 1.0.1-beta.* Infrastructure components (SystemResourceMonitor, HealthChecks, Network)

๐Ÿ“– Key Features

Application Layer

  • FeederMessage: Dictionary-based message abstraction with correlation ID
  • ServiceConfiguration: Strongly-typed configuration with change notifications
  • Telemetry: OpenTelemetry integration (Activities, Counters, Histograms)
  • Helpers: Comprehensive serialization (JSON, YAML, ProtoBuf, MessagePack, NetJSON, Newtonsoft.Json)
  • Collections: LinkedArray, BindingDictionary, GenericOrderedDictionary
  • Ciphering: AES/RSA encryption, password generation
  • Objects: DisposableObject, EquatableObject, NotifiableObject base classes

Infrastructure Layer

  • SystemResourceMonitor: Cross-platform monitoring (CPU, Memory, Disk, GPU, Battery)
  • Platform Providers: Windows/Linux/macOS with graceful degradation
  • SMART Disk Health: Disk health monitoring via platform-specific tools
  • GPU Metrics: nvidia-smi/rocm-smi integration
  • Battery Status: Power management metrics
  • No External Packages: Uses .NET BCL and CLI tools only

๐Ÿ— Architecture

The solution follows a strict two-layer architecture:

  1. Application Layer (ThunderPropagator.BuildingBlocks.Application)

    • Core building blocks with NO infrastructure dependencies
    • Helpers, serialization, collections, base classes
    • Verified by Tests/ArchTests/ArchitectureTests.cs
  2. Infrastructure Layer (ThunderPropagator.BuildingBlocks.Infrastructure)

    • System-level components (monitoring, health checks)
    • Depends on Application layer
    • Platform-specific providers with graceful degradation

Critical Rule: Application layer MUST NEVER depend on Infrastructure layer.


๐Ÿงช Testing

Run All Tests

dotnet test -c Release

Architecture Tests

Architecture constraints are enforced by NetArchTest.Rules in Tests/ArchTests/:

  • Application layer has no Infrastructure dependencies
  • Naming conventions
  • Layer boundaries

Unit Tests

Comprehensive unit tests with xUnit and NSubstitute in Tests/ThunderPropagator.UnitTests/:

  • FeederMessage, ServiceConfiguration tests
  • Helper method tests
  • Collection tests
  • SystemResourceMonitor tests

Benchmarks

BenchmarkDotNet benchmarks for performance-critical code:

  • CollectionHelperBenchmark.cs
  • SizeBenchmark.cs

๐Ÿš€ CI/CD Workflows

  • develop branch โ†’ develop-beta-ci.yml โ†’ Increments beta version
  • release/ branch โ†’ develop-release-ci.yml โ†’ Creates GitHub release, strips beta suffix
  • GitHub Packages feed: https://nuget.pkg.github.com/KiarashMinoo/index.json

๐Ÿ“ Contributing

  1. Follow the existing code conventions (see .github/copilot-instructions.md)
  2. Add XML documentation for all public APIs
  3. Include unit tests for new features
  4. Update relevant documentation in /docs
  5. Ensure architecture tests pass

๐Ÿ“œ License

See for details.

Product Versions Compatible and additional computed target framework versions.
.NET net8.0 net8.0 is compatible.  net8.0-android net8.0-android was computed.  net8.0-browser net8.0-browser was computed.  net8.0-ios net8.0-ios was computed.  net8.0-maccatalyst net8.0-maccatalyst was computed.  net8.0-macos net8.0-macos was computed.  net8.0-tvos net8.0-tvos was computed.  net8.0-windows net8.0-windows was computed.  net9.0 net9.0 is compatible.  net9.0-android net9.0-android was computed.  net9.0-browser net9.0-browser was computed.  net9.0-ios net9.0-ios was computed.  net9.0-maccatalyst net9.0-maccatalyst was computed.  net9.0-macos net9.0-macos was computed.  net9.0-tvos net9.0-tvos was computed.  net9.0-windows net9.0-windows was computed.  net10.0 net10.0 is compatible.  net10.0-android net10.0-android was computed.  net10.0-browser net10.0-browser was computed.  net10.0-ios net10.0-ios was computed.  net10.0-maccatalyst net10.0-maccatalyst was computed.  net10.0-macos net10.0-macos was computed.  net10.0-tvos net10.0-tvos was computed.  net10.0-windows 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 (13)

Showing the top 5 NuGet packages that depend on ThunderPropagator.BuildingBlocks.Debug:

Package Downloads
ThunderPropagator.Providers.DotNet.SharedKernel

ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact

ThunderPropagator.Feeviders.Pulsar.SharedKernel

ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact

ThunderPropagator.Feeviders.Mqtt.SharedKernel

ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact

ThunderPropagator.Feeviders.RabbitMQ.SharedKernel

ThunderPropagator (Project ARC): High-performance data propagation; effortless, blazingly fast and cloud-native for maximum impact

ThunderPropagator.Clients.DotNet

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.102 194 6/16/2026
1.0.1-beta.101 41 6/16/2026
1.0.1-beta.100 37 6/16/2026
1.0.1-beta.99 34 6/16/2026
1.0.1-beta.98 37 6/16/2026
1.0.1-beta.97 36 6/16/2026
1.0.1-beta.96 37 6/16/2026
1.0.1-beta.95 40 6/16/2026
1.0.1-beta.94 32 6/16/2026
1.0.1-beta.93 33 6/16/2026
1.0.1-beta.92 43 6/16/2026
1.0.1-beta.91 37 6/16/2026
1.0.1-beta.90 46 6/16/2026
1.0.1-beta.89 42 6/16/2026
1.0.1-beta.88 40 6/16/2026
1.0.1-beta.87 48 6/15/2026
1.0.1-beta.86 56 6/15/2026
1.0.1-beta.85 46 6/15/2026
1.0.1-beta.84 47 6/14/2026
1.0.1-beta.83 55 5/26/2026
Loading failed

- [refactor][ThunderPropagator.BuildingBlocks#149] Migrate ILogger call site to LoggerMessageAttribute source-generated logging