SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres
0.10.2-alpha.3
See the version list below for details.
dotnet add package SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres --version 0.10.2-alpha.3
NuGet\Install-Package SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres -Version 0.10.2-alpha.3
<PackageReference Include="SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres" Version="0.10.2-alpha.3" />
<PackageVersion Include="SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres" Version="0.10.2-alpha.3" />
<PackageReference Include="SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres" />
paket add SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres --version 0.10.2-alpha.3
#r "nuget: SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres, 0.10.2-alpha.3"
#:package SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres@0.10.2-alpha.3
#addin nuget:?package=SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres&version=0.10.2-alpha.3&prerelease
#tool nuget:?package=SoftwareExtravaganza.Whizbang.Data.Dapper.Postgres&version=0.10.2-alpha.3&prerelease
<p align="center"> <img alt="Whizbang — One Runtime. Any Store. Every Message." src="assets/hero-banner.svg" width="100%"> </p>
<p align="center"> <a href="https://whizba.ng/">Documentation</a> · <a href="https://www.nuget.org/packages/Whizbang.Core/">NuGet</a> · <a href="CONTRIBUTING.md">Contributing</a> </p>
<p align="center"> <a href="https://github.com/whizbang-lib/whizbang/actions/workflows/ci.yml"><img src="https://github.com/whizbang-lib/whizbang/actions/workflows/ci.yml/badge.svg" alt="CI"></a> <a href="https://codecov.io/gh/whizbang-lib/whizbang"><img src="https://codecov.io/gh/whizbang-lib/whizbang/branch/main/graph/badge.svg" alt="codecov"></a> <a href="https://sonarcloud.io/dashboard?id=whizbang-lib_whizbang"><img src="https://sonarcloud.io/api/project_badges/measure?project=whizbang-lib_whizbang&metric=alert_status" alt="Quality Gate Status"></a> <a href="https://www.nuget.org/packages/Whizbang.Core/"><img src="https://img.shields.io/nuget/v/Whizbang.Core.svg" alt="NuGet"></a> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a> </p>
<p align="center"> <a href="https://github.com/whizbang-lib/whizbang/actions/workflows/security-secrets.yml"><img src="https://github.com/whizbang-lib/whizbang/actions/workflows/security-secrets.yml/badge.svg" alt="Secret Scanning"></a> <a href="https://github.com/whizbang-lib/whizbang/actions/workflows/security-supply-chain.yml"><img src="https://github.com/whizbang-lib/whizbang/actions/workflows/security-supply-chain.yml/badge.svg" alt="Supply Chain"></a> <a href="https://securityscorecards.dev/viewer/?uri=github.com/whizbang-lib/whizbang"><img src="https://api.securityscorecards.dev/projects/github.com/whizbang-lib/whizbang/badge" alt="OSSF Scorecard"></a> </p>
<p align="center"> <a href="https://codecov.io/gh/whizbang-lib/whizbang"><img src="https://codecov.io/gh/whizbang-lib/whizbang/graphs/sunburst.svg?token=F1AZXLI2MM" alt="Codecov Sunburst" width="200"></a> </p>
<h3 align="center"><a href="https://whizba.ng">Read the full documentation at whizba.ng</a></h3>
Why Whizbang?
- Blazing Performance — < 20ns in-process message dispatch with zero allocations on the hot path
- Native AOT from Day One — Source generators wire everything at compile time; no reflection, no runtime surprises
- Type Safe — Compile-time verification of message handlers, routing, and event schemas
- Developer Experience — Rich IDE support with code navigation, diagnostics, and discovery via source generators
Core Concepts
Receptors — Stateless message handlers that receive commands and produce events. Type-safe with flexible response types.
Dispatcher — Message routing engine that connects messages to receptors with full observability (correlation, causation, hops).
Perspectives — Materialized read models built from event streams. Individually hash-tracked for incremental migration.
Lenses — Composable query projections over perspective data with LINQ translation to SQL.
Event Store — Append-only event storage with stream-based organization, UUIDv7 ordering, and optimistic concurrency.
Policy Engine — Declarative rules for message validation, transformation, and routing decisions.
Project Structure
src/
├── Whizbang.Core/ # Core interfaces, messaging, perspectives, lenses
├── Whizbang.Generators/ # Roslyn source generators (receptors, perspectives, registry)
├── Whizbang.Data.Dapper.Postgres/ # Dapper + PostgreSQL stores (event store, work coordinator)
├── Whizbang.Data.EFCore.Postgres/ # EF Core + PostgreSQL stores with turnkey initialization
├── Whizbang.Data.EFCore.Postgres.Generators/ # EF Core source generators (schema, registration)
├── Whizbang.Transports.RabbitMQ/ # RabbitMQ transport
├── Whizbang.Transports.AzureServiceBus/ # Azure Service Bus transport
├── Whizbang.Transports.HotChocolate/ # GraphQL integration via HotChocolate
├── Whizbang.Transports.FastEndpoints/ # REST integration via FastEndpoints
├── Whizbang.SignalR/ # Real-time push via SignalR
├── Whizbang.Observability/ # Metrics and tracing
├── Whizbang.Testing/ # Test utilities and fakes
└── Whizbang.Hosting.*/ # Hosted service wiring for transports
Technology Stack
- .NET 10 — Target framework
- PostgreSQL — Primary database with JSONB, UUIDv7, and hash-based schema migration
- EF Core 10 / Dapper — Dual data access with source-generated models
- Roslyn Source Generators — Compile-time wiring for receptors, perspectives, and DI registration
- TUnit — Source-generated testing with Microsoft.Testing.Platform
- Rocks — Source-generated mocking for AOT compatibility
- Vogen — Source-generated value objects
Getting Started
dotnet add package SoftwareExtravaganza.Whizbang.Core
See the Quick Start guide for a walkthrough.
Philosophy
- Zero Reflection — Everything via source generators
- AOT Compatible — Native AOT from day one
- Type Safe — Compile-time safety everywhere
- Test Driven — 21,000+ tests with comprehensive coverage
- Documentation First — Docs drive implementation
Contributing
See CONTRIBUTING.md for guidelines.
License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.2)
- Npgsql (>= 10.0.1)
- SoftwareExtravaganza.Whizbang.Data.Dapper.Custom (>= 0.10.2-alpha.3)
- SoftwareExtravaganza.Whizbang.Data.Postgres (>= 0.10.2-alpha.3)
- SoftwareExtravaganza.Whizbang.Data.Schema (>= 0.10.2-alpha.3)
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 |
|---|---|---|
| 0.41.6-alpha.12 | 34 | 3/29/2026 |
| 0.40.3-alpha.63 | 59 | 3/28/2026 |
| 0.40.3-alpha.8 | 35 | 3/29/2026 |
| 0.38.11-alpha.51 | 46 | 3/28/2026 |
| 0.35.31-alpha.28 | 42 | 3/27/2026 |
| 0.29.31-alpha.5 | 35 | 3/26/2026 |
| 0.22.5-alpha.45 | 30 | 3/25/2026 |
| 0.22.5-alpha.38 | 33 | 3/25/2026 |
| 0.15.6-alpha.27 | 33 | 3/25/2026 |
| 0.10.10-alpha.21 | 37 | 3/23/2026 |
| 0.10.10-alpha.16 | 36 | 3/23/2026 |
| 0.10.10-alpha.8 | 36 | 3/23/2026 |
| 0.10.10-alpha.4 | 36 | 3/23/2026 |
| 0.10.3-alpha.17 | 32 | 3/21/2026 |
| 0.10.2-alpha.3 | 38 | 3/20/2026 |
| 0.9.11-alpha.54 | 37 | 3/20/2026 |
| 0.9.10-alpha.49 | 35 | 3/20/2026 |
| 0.9.10-alpha.47 | 36 | 3/19/2026 |
| 0.9.4 | 96 | 3/10/2026 |
| 0.9.1-alpha.999 | 32 | 3/23/2026 |