Skip to content

NwireTypeScript framework for backends.

Three buckets of primitives. Same operation runs on HTTP, queue, or MCP.

Hello world

ts
import { httpInterface, endpoint } from "@nwire/http"

const api = httpInterface()
api.get("/hello", () => ({ message: "hello world" }))

await endpoint("hello", { port: 3000 }).serve(api).run()

That is the whole program. Five lines, one route, graceful shutdown included.

Three reading paths

Each is a complete path on its own. Pick the one that matches your goal.

  • Building with Nwire — you want to build a backend. Start at L1 and add primitives as the domain demands them.
  • Standalone packages — you have an existing Express / Fastify / Koa / Nest app and want one piece of Nwire (graceful shutdown, typed routes, the hook primitive, the operation primitive, or a DI container).
  • Under the hood — you want to write a plugin, an adapter, or understand how the runtime fits together.

Status

Pre-release. Driving the AMIT learning platform in production at 200apps; ecw, sparkil, momentum, water-dome, service-trax, nfk migrations in progress. APIs may still evolve. Tracking on GitHub. MIT-licensed.

MIT licensed.