Standalone packages
Each of the foundational Nwire packages works on its own, with no other Nwire package required. Drop one into your Express / Fastify / Koa / Nest app and use it without buying into the rest of the framework.
The Nwire stack itself is built by composing them — @nwire/forge uses @nwire/app, which uses @nwire/container and @nwire/hooks. If you wire them yourself, you get the same primitives that power the full framework.
Packages
| Package | What it does on its own | Page |
|---|---|---|
@nwire/endpoint | Graceful shutdown + health probes for any HTTP framework | Read |
@nwire/http | Typed routes + OpenAPI 3.1 for any DI container | Read |
@nwire/handler | The operation primitive — same operation runs on HTTP, queue, or MCP | Read |
@nwire/hooks | Universal dispatch primitive — tense-driven, typed, ~30 LOC behind it | Read |
@nwire/container | Bring-your-own DI — typed tokens, scopes, no decorators, no reflect-metadata | Read |
When to use this path
- You have an existing app and you want one capability — e.g. you only want graceful shutdown.
- You want to evaluate Nwire piecemeal without committing to the framework.
- You're building a different framework and want one primitive (the hook layer, the container) without the rest.
When to switch to the full stack
If you find yourself reaching for two or three standalone packages, you're likely better off climbing the build ladder — the L3/L4 surface composes these primitives for you and adds Studio, telemetry, topology, and the test harness.