PouryaKit.Core
0.1.0-preview.2
dotnet add package PouryaKit.Core --version 0.1.0-preview.2
NuGet\Install-Package PouryaKit.Core -Version 0.1.0-preview.2
<PackageReference Include="PouryaKit.Core" Version="0.1.0-preview.2" />
<PackageVersion Include="PouryaKit.Core" Version="0.1.0-preview.2" />
<PackageReference Include="PouryaKit.Core" />
paket add PouryaKit.Core --version 0.1.0-preview.2
#r "nuget: PouryaKit.Core, 0.1.0-preview.2"
#:package PouryaKit.Core@0.1.0-preview.2
#addin nuget:?package=PouryaKit.Core&version=0.1.0-preview.2&prerelease
#tool nuget:?package=PouryaKit.Core&version=0.1.0-preview.2&prerelease

PouryaKit.Core
Small helpers the Kit's own packages use and your code may too. AndAlso and OrElse compose two expression predicates into one lambda a LINQ provider such as EF Core can translate, ImplementingTypes.Of finds the concrete types of given assemblies that implement a contract, and SynchronizationContextScope blocks on asynchronous code safely where a synchronous member has to.
Install
dotnet add package PouryaKit.Core --prerelease
When to use it
- You build a query filter from optional parts and want one predicate EF Core can translate.
- Your application registers its own implementations of a contract it finds in its assemblies.
- A synchronous member has to wait for asynchronous code on a thread that may have a synchronization context.
You rarely reference it yourself: PouryaKit.Cqrs, PouryaKit.Web and the packages built on them already bring it.
Quick start
There is nothing to register. From the Kit's tests, a composed predicate, the type lookup and the scope:
var composed = AboveTen().AndAlso(Even()).Compile();
Assert.Equal([typeof(Ledger)], ImplementingTypes.Of(typeof(Store<>), Fixtures));
using var scope = SynchronizationContextScope.Enter();
What you get
- One predicate from two, with each parameter rewritten, so the provider translates the whole filter.
- The lookup the Kit's own registrations use to find handlers, authorizers and endpoints.
- A scope that runs a blocking wait without the current synchronization context.
A helper that belongs to one Capability lives in that Capability's package, and one that belongs to your application lives in your application.
Learn more
| 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
- No dependencies.
NuGet packages (6)
Showing the top 5 NuGet packages that depend on PouryaKit.Core:
| Package | Downloads |
|---|---|
|
PouryaKit.Cqrs
Commands and queries that run as Operations through one fixed pipeline, each Feature with one handler that returns a Result. |
|
|
PouryaKit.Persistence.EFCore
The EF Core Unit of Work: a DbContext per Module that saves and commits each Operation once, with the repository, audit, soft delete and conflicts as Errors. |
|
|
PouryaKit.Messaging.Wolverine
Durable deliveries on Wolverine with the message store in PostgreSQL: Notifications, Integration Events, Snapshots, delayed and recurring commands, each retried on its own. |
|
|
PouryaKit.Web
ASP.NET Core endpoints beside each Feature: authenticated access by default, one problem response for every failure and outgoing HTTP that carries the Operation Context. |
|
|
PouryaKit.Security
Permissions on commands and queries, checked in the pipeline against your application's own source, and PBKDF2 password hashing. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.2 | 194 | 11/1/2026 |
| 0.1.0-preview.1 | 221 | 10/31/2026 |
| 0.1.0-preview.0.28 | 195 | 10/26/2026 |