AutoWire
Compile-time DI registration — decorate your services and AutoWire generates
AddAutoWireServices() at build time.
[Scoped] / [Singleton] / [Transient]dotnet add package AutoWire
Compile-time .NET source generators that eliminate boilerplate — zero reflection, AOT-safe, IDE-first.
One attribute. Generated at build time. No runtime overhead.
Purpose-built packages for dependency injection, mapping, validation, result handling, queries, CQRS, logging, and HTTP clients — all sharing the same compile-time, zero-reflection approach.
Compile-time DI registration — decorate your services and AutoWire generates
AddAutoWireServices() at build time.
[Scoped] / [Singleton] / [Transient]dotnet add package AutoWire
Compile-time object mapping — generates strongly-typed ToDto() extension methods.
No AutoMapper, no reflection.
[Map(typeof(OrderDto))]dotnet add package AutoMap.Generator
Compile-time FluentValidation wiring — discovers all AbstractValidator<T> subclasses
and generates AddValidators().
dotnet add package AutoValidate.Generator
Compile-time Result<T> monad — [TryWrap] generates Try*()
wrappers for every public method. Zero-ceremony error handling.
[TryWrap]dotnet add package Swevo.AutoResult
Compile-time LINQ query specs — generates a strongly-typed Apply(IQueryable<T>)
method from a plain query class.
[QuerySpec(typeof(Product))]dotnet add package AutoQuery.Generator
Compile-time CQRS dispatcher — generates a strongly-typed IDispatcher from
[Handler] classes. No MediatR, no IRequest<T>.
[Handler]dotnet add package AutoDispatch.Generator
Compile-time high-performance logging — generates LoggerMessage.Define calls from
a simple attribute. AOT-safe, zero boilerplate.
[Log(LogLevel.Information, "Order {OrderId} created")]dotnet add package AutoLog.Generator
Compile-time typed HTTP client generation — annotate an interface with [HttpClient] and
HTTP verb attributes, get a strongly-typed implementation. AOT-safe Refit alternative.
[HttpClient] / [Get] / [Post]dotnet add package AutoHttpClient.Generator
The Auto* ecosystem leans on source generators so your architecture stays explicit, traceable, and production-ready without reflection-heavy frameworks.
Registration, mapping, and dispatch happen at build time. Your app starts faster.
Navigate to generated code with F12. Roslyn diagnostics appear as squiggles. Lightbulb fixes available.
No reflection means full compatibility with .NET Native AOT, Blazor WebAssembly, and trimmed deployments.
Each Auto* package is a focused, drop-in alternative to a well-known library — same job, zero reflection, AOT-safe.
| If you use… | Switch to… | Why |
|---|---|---|
| AutoMapper | AutoMap.Generator | No profiles, no IMapper, no DI — just [Map(typeof(Dto))] |
| MediatR | AutoDispatch.Generator | No IRequest<T> markers, no reflection, build-time generated dispatch |
| Scrutor | AutoWire | ∼19× faster startup, 65% less memory — registration generated at build time |
| Refit | AutoHttpClient.Generator | Fully typed HTTP clients generated at compile time, no runtime IL emit |
Beyond the generator suite: free, MIT-licensed alternatives to commercially-licensed dev tools — PDF generation, messaging, architecture testing, bulk EF Core operations, test assertions, Roslyn resilience analyzers, and a CI retry Action.
Free, MIT-licensed fluent PDF generation — alternative to IronPDF/Aspose.PDF's commercial license.
dotnet add package Swevo.FluentPdf
Free, MIT-licensed message bus — alternative to MassTransit's paid tiers.
dotnet add package Swevo.AutoBus
Free Roslyn analyzers enforcing architecture rules — alternative to NetArchTest/ArchUnitNET.
dotnet add package AutoArchitecture
Free bulk insert/update/delete for EF Core — alternative to EFCore.BulkExtensions' commercial features.
dotnet add package Swevo.EFCore.BulkOperations
Free, MIT-licensed fluent assertions — alternative to FluentAssertions' commercial license.
dotnet add package Swevo.AutoAssert
Free Roslyn analyzers for async/resilience anti-patterns — blocking calls, async void, fire-and-forget tasks, swallowed exceptions.
dotnet add package Swevo.PollyAnalyzers
Free retry/backoff wrapper for any CI step — exponential backoff, zero config, MIT licensed.
uses: Swevo/PollyAction@v1
Free, MIT-licensed fluent image resize/crop/rotate/grayscale wrapper around SkiaSharp — alternative to ImageSharp's Six Labors Split License (paid above $1M revenue).
dotnet add package Swevo.AutoImage
Every package below is free and MIT-licensed. Most Polly* packages add drop-in resilience (retry/timeout/circuit-breaker) for a specific library or service; EFCore.* packages are compile-time EF Core extensions in the same zero-reflection style as the generator suite.
| PollyAzureBlob | Retry/timeout/circuit-breaker for Azure Blob Storage (BlobClient) |
| PollyAzureEventHub | Resilience for Azure Event Hubs (EventHubProducerClient) |
| PollyAzureKeyVault | Resilience for Azure Key Vault (SecretClient) |
| PollyAzureQueueStorage | Resilience for Azure Queue Storage (QueueClient) |
| PollyAzureServiceBus | Resilience for Azure Service Bus sender/receiver |
| PollyAzureTableStorage | Resilience for Azure Table Storage (TableClient) |
| PollyBackoff | Backoff delay strategies — decorrelated jitter, exponential, linear, constant |
| PollyChaos | Chaos engineering / fault-injection strategies for Polly v8 |
| PollyCosmosDb | Resilience for Azure Cosmos DB container operations |
| PollyDapper | Resilient Dapper decorator — QueryAsync/ExecuteAsync with retry/timeout/circuit-breaker |
| PollyEFCore | Resilience for every EF Core query and SaveChanges via one DI line |
| PollyElasticsearch | Resilience for Elastic.Clients.Elasticsearch operations |
| PollyGrpc | Resilience for gRPC .NET clients via Interceptor |
| PollyHangfire | Resilience for Hangfire's IBackgroundJobClient |
| PollyHealthChecks | ASP.NET Core health checks for Polly v8 circuit breakers |
| PollyKafka | Resilience for Confluent.Kafka producers and consumers |
| PollyMailKit | Resilience for MailKit SMTP sending |
| PollyMassTransit | Producer-side resilience for MassTransit IBus.Publish/Send |
| PollyMediatR | Resilience pipelines for any MediatR request handler |
| PollyMongo | Resilient MongoDB.Driver decorator for common IMongoCollection calls |
| PollyNpgsql | Resilience for Npgsql (PostgreSQL) with transient-error predicate |
| PollyOpenAI | Resilience for OpenAI/Azure OpenAI calls — 429 + Retry-After aware |
| PollyRabbitMQ | Resilience for RabbitMQ.Client's IChannel |
| PollyRateLimiter | Fixed-window, token-bucket, sliding-window rate limiting for Polly v8 |
| PollyRedis | Resilience for StackExchange.Redis with DI integration |
| PollySendGrid | Resilience for SendGrid with 429/500/503 detection |
| PollySignalR | Exponential back-off reconnect policy for SignalR, drop-in for WithAutomaticReconnect |
| PollySqlClient | Resilience for SQL Server / Azure SQL SqlConnection |
| Polly.Contrib.Bulkhead | Bulkhead isolation strategy for Polly v8 pipelines |
| Polly.Contrib.Caching | Caching resilience strategy for Polly v8 pipelines |
| Polly-Contrib-OpenTelemetry | OpenTelemetry instrumentation for Polly v8 pipelines |
| EFCore.JsonColumn | [JsonColumn] generates OwnsOne(...ToJson()) configuration automatically |
| EFCore.MultiTenant | [Tenant] source generator + save interceptor + automatic query filters |
| EFCore.Outbox | Transactional outbox pattern for EF Core + MassTransit |
| EFCore.Pagination | Offset and cursor (keyset) pagination — ToPageAsync / ToCursorPageAsync |
| EFCore.RowVersion | [Optimistic] generates RowVersion + client-wins/database-wins conflict handlers |
| EFCore.Seeding | Fluent, idempotent, dependency-ordered seed data via IEntitySeed<T> |
| EFCore.SoftDelete | [SoftDelete] generates IsDeleted/DeletedAt, interceptor, and global query filter |
| EFCore.StronglyTyped | [StronglyTypedId] generates value types with EF Core converter + System.Text.Json support |
| AutoAuth | Fluent configuration wrapper around OpenIddict — a Duende IdentityServer alternative |
| AutoAudit | [Auditable] generates CreatedAt/UpdatedAt/CreatedBy/UpdatedBy + EF Core interceptor |
| AutoFeatureFlag | [FeatureFlags] on an enum generates a strongly-typed flags interface. No strings. |
| AutoGuard | Compile-time guard clauses from primary constructor parameters — [NotNull]/[InRange]/[NotEmpty]/[Matches] |
| FluentExcel | Free, MIT-licensed fluent Excel generation — alternative to EPPlus's commercial subscription |
| HttpClient.TestKit | FakeHttpMessageHandler for unit-testing HttpClient calls, zero dependencies |
| MassTransit.RequestClient.TestKit | FakeRequestClient<T> / FakePublishEndpoint for unit-testing MassTransit without a real bus |