SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators
0.22.5-alpha.45
See the version list below for details.
dotnet add package SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators --version 0.22.5-alpha.45
NuGet\Install-Package SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators -Version 0.22.5-alpha.45
<PackageReference Include="SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators" Version="0.22.5-alpha.45"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators" Version="0.22.5-alpha.45" />
<PackageReference Include="SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators --version 0.22.5-alpha.45
#r "nuget: SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators, 0.22.5-alpha.45"
#:package SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators@0.22.5-alpha.45
#addin nuget:?package=SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators&version=0.22.5-alpha.45&prerelease
#tool nuget:?package=SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators&version=0.22.5-alpha.45&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
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
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.58.2-alpha.5 | 0 | 4/1/2026 |
| 0.54.2-alpha.76 | 0 | 3/31/2026 |
| 0.42.1-alpha.69 | 0 | 3/31/2026 |
| 0.41.6-alpha.12 | 77 | 3/29/2026 |
| 0.40.3-alpha.63 | 86 | 3/28/2026 |
| 0.40.3-alpha.8 | 53 | 3/29/2026 |
| 0.38.11-alpha.51 | 72 | 3/28/2026 |
| 0.35.31-alpha.28 | 89 | 3/27/2026 |
| 0.29.31-alpha.5 | 36 | 3/26/2026 |
| 0.22.5-alpha.45 | 118 | 3/25/2026 |
| 0.22.5-alpha.38 | 104 | 3/25/2026 |
| 0.15.6-alpha.27 | 45 | 3/25/2026 |
| 0.10.10-alpha.21 | 158 | 3/23/2026 |
| 0.10.10-alpha.16 | 61 | 3/23/2026 |
| 0.10.10-alpha.8 | 51 | 3/23/2026 |
| 0.10.10-alpha.4 | 35 | 3/23/2026 |
| 0.10.3-alpha.17 | 51 | 3/21/2026 |
| 0.10.2-alpha.3 | 120 | 3/20/2026 |
| 0.9.4 | 128 | 3/10/2026 |
| 0.9.1-alpha.999 | 35 | 3/23/2026 |