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

# Installation

> Install Wyrly DI for Deno, Node.js, Bun, and supported web frameworks.

Install `@wyrly/core` first. Add framework adapters only when your app needs them.

## Deno 2.x

Use JSR for Deno projects.

```sh theme={null}
deno add jsr:@wyrly/core
```

Then import from `@wyrly/core`.

```ts theme={null}
import { createContainer, Injectable, token } from "@wyrly/core";
```

## Node.js 20+

Use npm for Node.js and bundler-based applications.

```sh theme={null}
npm install @wyrly/core
```

```ts theme={null}
import { createContainer, Injectable, token } from "@wyrly/core";
```

## Bun

Use the npm package from Bun.

```sh theme={null}
bun add @wyrly/core
```

```ts theme={null}
import { createContainer, Injectable, token } from "@wyrly/core";
```

## Framework adapters

Install the adapter that matches your runtime.

| Runtime                             | Package          |
| ----------------------------------- | ---------------- |
| Next.js App Router                  | `@wyrly/next`    |
| Express                             | `@wyrly/express` |
| Hono                                | `@wyrly/hono`    |
| Fresh 2.x                           | `@wyrly/fresh`   |
| GraphQL request context (low-level) | `@wyrly/graphql` |
| Fastify 5                           | `@wyrly/fastify` |
| GraphQL Yoga 5                      | `@wyrly/yoga`    |
| Apollo Server 4+                    | `@wyrly/apollo`  |

Use `@wyrly/graphql` when you build GraphQL context yourself. For Yoga or Apollo Server integration,
install `@wyrly/yoga` or `@wyrly/apollo` instead — see [Framework adapters](/guides/framework-adapters).

For example, install the Next.js adapter with:

```sh theme={null}
npm install @wyrly/next @wyrly/core
```

## Requirements

* TypeScript 5+
* Standard decorators
* `experimentalDecorators: false`
* ESM-compatible runtime or bundler
* Deno 2.x, Node.js 20+, Bun, or a supported web framework

Wyrly does not require `reflect-metadata` or `emitDecoratorMetadata`.

## Local repository development

If you are contributing to Wyrly itself:

```sh theme={null}
git clone https://github.com/valid-lab/wyrly.git
cd wyrly
deno task setup:hooks
deno task check
deno task test
```
