# Kanject Core — Library Reference

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.

> **Learn by doing: Inside the Orders API:** Prefer to learn by building? The **Bean & Bark** Core series wires these libraries into one real service — [the orders table typed](https://www.kanject.com/docs/core-bean-bark-orders/) with NoSqlDatabase, then [bags that answer for themselves](https://www.kanject.com/docs/core-bean-bark-labels/) with Qr. Same roastery the [CLI](https://www.kanject.com/docs/cli-bean-bark/) and [DynoStudio](https://www.kanject.com/docs/dynostudio-bean-bark/) series build and query from the other sides.

## 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.

> **Tip:** Pair every Core library with `Kanject.Core.Logs` for correlated, structured output across your service.

---
_Source: https://www.kanject.com/docs/core/ · Kanject Docs_
