Kanject Core — Library Reference
Kanject Core is a suite of focused .NET libraries for building production services on AWS in clean, testable C#. Eighteen libraries — the Community ones on public NuGet, the rest on the private feed — wired up through extension methods on IServiceCollection.
Pick the libraries you need — they're independent and tree-shakeable, wired à-la-carte. Each library has its own page below.
Your first working example
Start with the Orders API tutorial. You will create a small .NET API, connect it to DynamoDB Local, and read the same sample orders in C# and DynoStudio. It includes a downloadable project, package versions, file locations, and expected results. You need the .NET 10 SDK, access to the private DynamoDB packages, and the local dataset setup.
Already integrating a library? Choose its reference below for installation and configuration details. Start with one library; add others as your service needs them.
Persistence & data
[Repository] shape, three engines.[Repository] ergonomics as NoSqlDatabase.Messaging & events
IQueueManager producer, [QueueConsumer] batch handlers, retries, automatic DLQ.[Channel] handler, two hosts — a batching drain loop that runs as a BackgroundService or inside a Lambda invocation.[EventTopic] + IEventPublisher — in-process handlers by default, SNS or your own broker when the host registers one.[CloudFunctionHost] source-generated Lambda host — DI, config source, cold-start reuse.Web & API
Response<T> envelope, exception middleware, x-tenant-id resolution, and source-generated minimal-API endpoints.Operations & background work
[Recurring(rate, unit)] on a method → a generated, drift-corrected recurring runner.[Parallel] on a method → generated bounded fan-out with chunking, retries, timeouts, and per-item outcomes for partial batches.Composition & editions
[LockedBehind] edition locks decide what ships; IFeatureGate decides what runs.Pattern
Every Core library follows the same shape: Add<Service>() extension methods on IServiceCollection, attribute-driven configuration, and an interface you can mock for tests. Once you've learned one, you've learned them all.