Skip to content

Package list

26 @nwire/* packages today. All MIT, all opt-in (you import only what you use). Listed here grouped by role.

Core (always installed)

  • @nwire/forge — domain primitives (defineAction, defineActor, defineEvent, defineProjection, defineQuery, when, defineModule, defineApp, createApp), Runtime, and the canonical telemetry stream
  • @nwire/messagesdefineEvent + defineCommand typed contracts (shared across packages so types don't depend on forge)
  • @nwire/envelopeMessageEnvelope + seedEnvelope / deriveEnvelope (zero-dep leaf — nothing else depends back)

Transports / wires

  • @nwire/http — HTTP transport (Koa + Router), httpInterface() builder, OpenAPI generator, /_nwire/* inspect endpoints
  • @nwire/queue — queue worker contract + InMemoryQueueTransport
  • @nwire/cron — cron scheduler binding
  • @nwire/clinwire umbrella CLI (dev, run, cache, call, please, ls, studio)
  • @nwire/pleaserunPlease CLI dispatcher (call any action by name from the shell)

Persistence + adapters

  • @nwire/store-mongoMongoActorStore, MongoProjectionStore
  • @nwire/store-fileFileActorStore, FileProjectionStore (JSON snapshot files; for tests + tiny prod loads)
  • @nwire/queue-bullmq — BullMQ adapter for the queue worker

Cross-service

  • @nwire/bus — bus contract + InMemoryEventBus
  • @nwire/bus-nats — NATS adapter for the bus

Cross-cutting

  • @nwire/logger — Logger interface + NoopLogger + envelope-scoped child logger
  • @nwire/logger-pino — Pino adapter
  • @nwire/dead-letter — DeadLetterSink interface + InMemoryDeadLetterSink
  • @nwire/observability — tracingMiddleware + tracingPlugin (works with any OTel-shaped Tracer)
  • @nwire/auth — Authorizer interface + UnauthorizedError + ForbiddenError + authzMiddleware
  • @nwire/errors — typed error hierarchy
  • @nwire/container — DI container interface + default
  • @nwire/container-awilix — awilix adapter

Deployment + tooling

  • @nwire/kernel — shared core for CLI/Studio/MCP. Process supervisor (spawn, stdout capture, health check, stop), event bus, and command router. All three surfaces dispatch through the same kernel.
  • @nwire/telemetry-otel — OpenTelemetry bridge (attachOtelExporter)

Reflection + studio

  • @nwire/scanbuildCache(apps) walks definitions and writes .nwire/*.json static cache + Vite plugin for live cache during dev
  • @nwire/studio — the visual companion (Vue 3 + VueFlow). Live events, EventStorming canvas with Play Trace, dispatch UI, run page

Testing

  • @nwire/test-kitharness, TelemetryProbe, dockerCompose, BDD wrapper, zod fixture factory, supertest agent

Docs

  • @nwire/docs — this VitePress site (in the framework repo, not published to npm)

Dep DAG sanity

Every package's deps point at lower-tier packages — no cycles, no implicit re-exports through forge that hide the real dep.

envelope          messages
   ↑                 ↑
logger ──── forge ───┘
   ↑         ↑
   └─── http ┘

   container, dead-letter, queue, bus, errors, observability, auth,
   store-*, bus-*, queue-*, logger-pino, cron, topology, runner,
   telemetry-otel, scan, test-kit

If you only need the runtime, @nwire/forge + @nwire/messages is ~80KB of source. Everything else is opt-in.

Versioning

Pre-1.0: all packages move at lockstep. Post-1.0: independent semver, with the framework as a meta-package (nwire@x.y.z pins all core deps).

MIT licensed.