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

# Wyrly DI

> モダンな TypeScript アプリのための型安全な依存性注入。

Wyrly DI は、依存関係を明示的に管理し、依存グラフを解析・検証できる、型安全な DI ツールキットです。

レガシーな decorator metadata や実行時の型推測、フレームワーク密結合なしで、モダンな TypeScript アプリに DI を導入したいときに使います。

<CardGroup cols={2}>
  <Card title="はじめる" icon="rocket" href="/ja/getting-started/installation">
    Deno、Node.js、Bun 向けに `@wyrly/core` をインストールし、最初の container
    を作ります。
  </Card>

  <Card title="なぜ Wyrly?" icon="sparkles" href="/ja/concepts/why-wyrly">
    Wyrly が型付きトークン、明示的な依存定義、標準デコレーターを使う理由を学びます。
  </Card>

  <Card title="Framework adapters" icon="plug" href="/ja/guides/framework-adapters">
    Next.js、Express、Hono、Fresh、Fastify、GraphQL（Yoga / Apollo）に request-scoped DI を追加します。
  </Card>

  <Card title="API reference" icon="code" href="/ja/reference/public-api">
    Wyrly DI v2.2 の安定した public exports を確認します。
  </Card>
</CardGroup>

## Wyrly が向いている用途

Wyrly は、明確な composition root、明示的な依存関係、framework に依存しない domain
code を重視する TypeScript アプリケーション向けに設計されています。

特に DDD やクリーンアーキテクチャでは、use case が port（抽象）に依存し、composition root など外側の層で型付きトークンを使って具体的な実装を組み立てる構成と相性がよいです。

## 中核となる考え方

* `reflect-metadata` なし
* `emitDecoratorMetadata` なし
* parameter decorators なし
* 型安全なトークン
* 明示的な依存定義
* singleton / scoped / transient ライフタイム
* Web フレームワーク向けリクエストスコープ
* 検査・検証できる依存グラフ

## Packages

| Package          | Purpose                                                           |
| ---------------- | ----------------------------------------------------------------- |
| `@wyrly/core`    | Core container、typed tokens、lifetimes、validation、graph inspection |
| `@wyrly/next`    | Next.js App Router request-scoped DI                              |
| `@wyrly/express` | 1 request につき 1 DI scope を作る Express middleware                   |
| `@wyrly/hono`    | エッジ向けの DI スコープを作る Hono ミドルウェア                                     |
| `@wyrly/fresh`   | Fresh 2.x ミドルウェアとルートヘルパー                                          |
| `@wyrly/graphql` | GraphQL リクエストコンテキスト連携                                             |
| `@wyrly/fastify` | 1 request につき 1 DI scope の Fastify 5 プラグイン                        |
| `@wyrly/yoga`    | GraphQL Yoga 5 向けインバウンドアダプター                                      |
| `@wyrly/apollo`  | Apollo Server 4+ 向けインバウンドアダプター                                    |

## まず example から始める

初めて Wyrly を使う場合は、core quickstart から始め、その後で runtime に合う adapter
を選んでください。

<CardGroup cols={2}>
  <Card title="Core quickstart" icon="play" href="/ja/getting-started/quickstart">
    プロバイダーを登録し、スコープから use case を解決します。
  </Card>

  <Card title="Examples" icon="folder-open" href="/ja/guides/examples">
    DDD、プロバイダーパターン、グラフ検証、各 Web フレームワーク向けの実行可能なサンプルを確認します。
  </Card>
</CardGroup>
