> ## Documentation Index
> Fetch the complete documentation index at: https://nestcrate.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Adapter crates

> Companion crates for NestJS surfaces that do not fold into Axum: Socket.IO, Lambda, Passport, Better Auth, BullMQ, SAML, LDAP, and SeaORM.

These crates close NestJS gaps that nestrs cannot rebuild on Axum. They are **workspace members**, not feature flags on `nestrs`. Add only the crates you use. They depend on `nestrs-core` (or nothing) so they do not cycle with the façade crate.

Fastify remains out of scope ([ADR-0001](https://github.com/Joshyahweh/nestrs/blob/main/docs/src/adrs/0001-axum-only.md)). `nestrs-drizzle` stays carved out of workspace members.

<Note>
  Pages on [docs.rs](https://docs.rs) appear after the crate is published to crates.io. Until then, this section is the canonical guide.
</Note>

## Crates in this section

<CardGroup cols={2}>
  <Card title="nestrs-socketio" icon="bolt" href="/adapters/socketio">
    Socket.IO via socketioxide — Nest `@nestjs/platform-socket.io`.
  </Card>

  <Card title="nestrs-lambda" icon="cloud" href="/adapters/lambda">
    AWS Lambda / API Gateway — `listen_lambda(router)`.
  </Card>

  <Card title="nestrs-auth-strategy" icon="passport" href="/adapters/auth-strategy">
    `JwtStrategy` and `LocalBasicStrategy` on `AuthStrategy`.
  </Card>

  <Card title="nestrs-better-auth" icon="shield" href="/adapters/better-auth">
    Nest the better-auth.rs router and guard session cookies.
  </Card>

  <Card title="nestrs-bullmq" icon="list" href="/adapters/bullmq">
    BullMQ Redis key-layout producer for Node workers.
  </Card>

  <Card title="nestrs-saml" icon="key" href="/adapters/saml">
    SAML 2.0 SP-initiated redirect + `SamlResponseValidator`.
  </Card>

  <Card title="nestrs-ldap" icon="address-book" href="/adapters/ldap">
    LDAP simple bind — `passport-ldap` analogue.
  </Card>

  <Card title="nestrs-sea-orm" icon="database" href="/adapters/sea-orm">
    SeaORM `Repo`, `Bind`, ambient tx, `expose_schema`, `RowAuthz` — recommended ORM path (TypeORM / NestRS analogue).
  </Card>
</CardGroup>

## NestJS mapping

| NestJS | Crate |
| - | - |
| `@nestjs/platform-socket.io` | [`nestrs-socketio`](/adapters/socketio) |
| AWS Lambda / serverless Express adapter | [`nestrs-lambda`](/adapters/lambda) |
| `@nestjs/passport` | [`nestrs-auth-strategy`](/adapters/auth-strategy) |
| nestjs-better-auth | [`nestrs-better-auth`](/adapters/better-auth) |
| `@nestjs/bullmq` | [`nestrs-bullmq`](/adapters/bullmq) |
| `passport-saml` | [`nestrs-saml`](/adapters/saml) |
| `passport-ldap` | [`nestrs-ldap`](/adapters/ldap) |
| TypeORM / Sequelize | [`nestrs-sea-orm`](/adapters/sea-orm) |
| `@nestjs/platform-fastify` | Out of scope (Axum only) |

## Which adapters to deepen

| Adapter | Posture | Notes |
| - | - | - |
| **nestrs-sea-orm** | **Deepened (1.6.0)** | Golden path: Repo, Bind, tx, authz, expose |
| **nestrs-graphql** / **nestrs-openapi** / **nestrs-ws** | **Deepened (authz/posture)** | DataLoader tip, posture security, `emit_masked_current` |
| nestrs-prisma / mongodb | Keep | Alternate data stores; do not duplicate SeaORM Bind |
| socketio / lambda / passport / better-auth / bullmq / saml / ldap | **Keep thin** | Compatibility shims — deepen only when a product needs it |

## How they attach

Most adapters return an Axum `Router`, a Tower layer, or a `DynamicModule`. Merge them with `NestFactory::create_with_modules` or `into_router()` — they are not `nestrs = { features = [...] }` flags.

```toml theme={null}
[dependencies]
nestrs = "1.6.0"
# pick the crates you need:
nestrs-socketio = "1.6.0"
nestrs-lambda = "1.6.0"
nestrs-auth-strategy = "1.6.0"
nestrs-better-auth = "1.6.0"
nestrs-bullmq = "1.6.0"
nestrs-saml = "1.6.0"
nestrs-ldap = "1.6.0"
nestrs-sea-orm = "1.6.0"
```
