Enterprise architecture without the weight. Runtime freedom without the chaos.
Setu-TS combines Hono's performance, runtime independence, and a plugin-first architecture with the enterprise patterns large organizations need — CQRS, multi-tenancy, audit trails, and more.
deno add jsr:@setu-ts/kernel jsr:@setu-ts/runtime npx jsr add @setu-ts/kernel @setu-ts/runtime Why Setu-TS exists
Hono is fast and portable but intentionally minimal. NestJS is feature-rich but Node-only and decorator-mandatory. Fastify is quick but lacks enterprise abstractions. Setu-TS resolves the compromise: plugin-first capabilities on a small kernel, running on all four runtimes.
Core principles
-
Plugin-first
Every capability is a plugin; the kernel ships with zero features.
-
Runtime independent
Node.js, Deno, Bun, and Cloudflare Workers — business logic never touches runtime APIs.
-
Optional DI & decorators
Dependency injection and decorators are plugins, not requirements. Everything has a programmatic API.
-
Type safe
Strict TypeScript throughout; no any in public APIs; tree-shakeable ES modules.
Capabilities
48 published packages — the core, 37 plugins, three starters, the SDK, the test
utilities, and the setu CLI. Add only what you use; heavy dependencies
are injected or lazily loaded, never installed by default.
-
Core
Plugin kernel, middleware pipeline, Hono routing, runtime abstraction, RFC 9457 exceptions, test utilities.
-
Request path
Logging, configuration, validation, security headers/CSRF, JWT & API-key auth with RBAC, GraphQL over HTTP.
-
Data
Repositories over memory, Prisma, Drizzle, MongoDB, DynamoDB, Cosmos DB, Bigtable, D1; caching; storage; multi-tenancy.
-
Messaging & background
Domain events, CQRS, seven message brokers, queues & cron scheduling, CPU-bound worker pools.
-
Service-to-service
Service discovery (Consul, Kubernetes, DNS), gRPC/Connect co-serving, Cloudflare bindings, static files.
-
Real-time & rendering
SSE, WebSocket rooms, cross-replica backplane, React Router SSR, server-rendered views.
-
Operations
Health probes, Prometheus metrics, OpenTelemetry tracing, OpenAPI 3.1, audit trail, resilience patterns, secrets.
-
Delivery & ergonomics
Mail, notifications, feature flags, optional DI and decorators, the setu CLI, client SDK, starter bundles.
Quick example
The smallest possible application — just the kernel and a runtime:
1import { createApplication } from '@setu-ts/kernel';
2import { RuntimePlugin } from '@setu-ts/runtime';
3import { LoggerPlugin } from '@setu-ts/logger-plugin';
4
5const app = createApplication({
6 plugins: [RuntimePlugin(), LoggerPlugin({ level: 'info' })],
7});
8
9app.router.get('/', (ctx) => {
10 return ctx.response.json({ message: 'Hello, World!' });
11});
12
13await app.start({ port: 3000 }); No decorators. No DI. No modules. Add capabilities as you need them — see Getting started and the plugin catalog.