Kanject Core — Library Reference

View .md

Kanject Core is a suite of focused .NET libraries that wrap individual AWS services in clean, testable C# APIs. Twelve packages, all distributed via the private NuGet feed, all wired up via 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.

Persistence & data

NoSqlDatabase
Type-safe NoSQL across DynamoDB, ScyllaDB, and Amazon Keyspaces — one `[Repository]` shape, three engines. /docs/core-nosql
SqlDatabase
Relational sibling with an Aurora DSQL provider (v1.0.0). Same `[Repository]` ergonomics as NoSqlDatabase. /docs/core-sql
CacheDb
Cache over DynamoDB, S3 Express, or in-memory — typed values, absolute expiry, namespaced keys. /docs/core-cache
FileRepository
S3 wrapper with content-type detection, presigned URLs, access levels. /docs/core-files

Messaging & events

Queue
SQS — `IQueueManager` producer, `[QueueConsumer]` batch handlers, retries, automatic DLQ. /docs/core-queue
CloudFunction
`[CloudFunctionHost]` source-generated Lambda host — DI, config source, cold-start reuse. /docs/core-cloudfunction

Web & API

Api
ASP.NET Core baseline — `Response<T>` envelope, exception middleware, `x-tenant-id` resolution. /docs/core-api
Adapter
Typed adapters for outbound HTTP APIs — auth, retries, source-generated endpoints. /docs/core-adapter
Qr
First-party QR encoder — styled SVG/PNG, logo overlays, scannability verifier. AOT-clean. /docs/core-qr

Operations & background work

Logs
A queryable, DynamoDB-backed log store — write records into named groups, read by text and time. /docs/core-logs
Recurring
`[Recurring(rate, unit)]` on a method → a generated, drift-corrected recurring runner. /docs/core-recurring
EtlTaskManager
In-process Extract → Transform → Load for bounded imports and migrations. /docs/core-etl

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.

Was this page helpful?