Menu
On this page
Edit this page on GitHub

Plugin Catalog

This catalog lists all published plugins and packages in the Setu-TS framework, organized by tier and capability.

Package Tiers

Packages are organized into tiers based on their role in the framework:

TierDescription
Tier 1Core infrastructure (common, kernel, runtime)
Tier 2Essential plugins (DI, decorators, logger, config, validation)
Tier 3Business capability plugins (database, cache, auth, messaging, etc.)
Tier 4Infrastructure plugins (metrics, health, telemetry, etc.)
Tier 5Platform-specific plugins (Cloudflare, gRPC, GraphQL, etc.)
ToolingCLI, SDK, and starters

Optional npm drivers

Most packages here declare no npm dependencies at all. Nearly all packages that declare them do so because they offer an OPTIONAL driver — a Redis client, a cloud SDK, a database ORM — where the rule is always the same: nothing is imported until you select the arm that needs it. Choosing MemoryStore never loads ioredis; choosing LogProvider never loads nodemailer.

Three packages are the exception, and the table marks them always: for graphql-plugin, grpc-plugin and react-router-plugin the driver is the capability rather than one choice among several, so there is nothing to select and nothing that stays unloaded.

What differs is what “declare” means in each ecosystem, and it is worth being precise because the two answers are genuinely different:

Deno / JSRNode / Bun (npm)
Adding the packagefetches nothing extrainstalls the declared drivers
Selecting a driver armresolves the npm: specifier on first importalready present
Never selecting onethe driver is never fetchedthe driver sits unused in node_modules

The npm column is not a packaging choice we made. JSR’s npm-compatibility build turns every npm: specifier it finds into a dependencies entry of the published package, and npm has no concept of an optional-but-declared runtime dependency that fits this pattern. So on npm, installing @setu-ts/messaging-plugin does bring its six broker clients with it, even if your application only ever uses the in-memory broker.

Which packages declare drivers

Every package NOT listed here declares zero npm dependencies — that includes common, kernel, exceptions, sdk, cloudflare-plugin, session-plugin, validation-plugin, openapi-plugin, static-plugin, websocket-plugin, worker-pool-plugin, and the three starters. cli is on that list too, which is worth saying out loud because its source is full of npm: strings: those are DATA it writes into a generated project’s manifest, not specifiers it imports, so nothing follows them into its own dependency graph.

PackageDeclared npm driversArm that needs them
auth-pluginioredisRedisRateLimitStore
cache-pluginioredisstore: 'redis'
database-plugindrizzle-ormtype: 'drizzle' (Prisma and D1 are inject-only — neither declares a driver)
feature-flags-plugin@launchdarkly/node-server-sdkprovider: 'launchdarkly'
graphql-plugingraphqlalways (the execution engine)
grpc-plugin@connectrpc/connect, @bufbuild/protobufalways (the RPC runtime)
logger-pluginpinoPinoLogger
mail-pluginnodemailer, @aws-sdk/client-sesv2smtp / ses providers
messaging-pluginioredis, amqplib, kafkajs, nats, @google-cloud/pubsub, @azure/service-busthe matching broker
queue-pluginioredis, amqplib, @aws-sdk/client-sqs, @aws-sdk/client-snsthe matching adapter
react-router-pluginreact-routeralways (SSR request handler)
realtime-backplane-pluginioredistransport: 'redis'
runtime@hono/node-server, wsthe Node HTTP and WebSocket adapters
scheduler-pluginioredisRedisLock
secrets-plugin@aws-sdk/client-secrets-manager, @google-cloud/secret-manager, @azure/identity, @azure/keyvault-secretsthe matching cloud provider
storage-plugin@aws-sdk/client-s3, @aws-sdk/s3-request-presigner, @google-cloud/storage, @azure/storage-blobthe matching provider
telemetry-plugin@opentelemetry/{api,resources,sdk-trace-base,exporter-trace-otlp-http} and @opentelemetry/instrumentation-{http,undici,ioredis,amqplib,kafkajs}any non-noop exporter, or instrumentations

The three always rows — graphql-plugin, grpc-plugin and react-router-plugin — have no zero-driver arm, and none of them claims one. Everything else here is genuinely optional: the arm named beside it is the only thing that loads it.

Every driver above can also be supplied by injection instead, through the plugin’s own options (DatabasePlugin({ client }), CachePlugin({ client }), and so on). An application that injects its own client never triggers the lazy import at all — see AI_GUIDELINES §12.2.

Tier 1: Core Infrastructure

@setu-ts/common

Purpose: Shared types, interfaces, and capability tokens used across all packages.

Capability Token: N/A (type-only package)

Runtime Compatibility:

DenoNodeBunWorkers

Key Exports:

  • IPlugin, IPluginContext - Plugin contracts
  • CAPABILITIES - Standard capability tokens
  • IRequest, IResponse, IRequestContext - HTTP abstractions
  • IRuntimeServices - Runtime service interface

Links:


@setu-ts/kernel

Purpose: Core plugin kernel with registry, middleware pipeline, router, and application lifecycle.

Capability Token: N/A (core infrastructure)

Runtime Compatibility:

DenoNodeBunWorkers

Key Exports:

  • createApplication() - Application factory
  • Router, LinearRouter - Routing engine
  • ServiceRegistry - Service container

Links:


@setu-ts/runtime

Purpose: Runtime detection and HTTP adapter implementations for all platforms.

Capability Token: CAPABILITIES.RUNTIME

Runtime Compatibility:

DenoNodeBunWorkers

Key Exports:

  • RuntimePlugin - Runtime registration
  • DenoHttpAdapter, NodeHttpAdapter, BunHttpAdapter, CloudflareWorkersHttpAdapter
  • detectRuntime() - Runtime detection

Links:


Tier 2: Essential Plugins

@setu-ts/di-plugin

Purpose: Optional dependency injection container with constructor injection and scope management.

Capability Token: CAPABILITIES.CONTAINER

Runtime Compatibility:

DenoNodeBunWorkers

Key Features:

  • Singleton, scoped, and transient lifecycles
  • Constructor and parameter injection
  • Circular dependency detection
  • Hierarchical scopes

Links:


@setu-ts/decorator-plugin

Purpose: Optional decorators for controllers, routes, and dependency injection.

Capability Token: CAPABILITIES.METADATA_STORE

Runtime Compatibility:

DenoNodeBunWorkers

Key Features:

  • @Controller, @Get, @Post, etc.
  • @Injectable, @Inject
  • @Body, @Query, @Param
  • @UseGuards, @UseInterceptors, @UseFilters

Note: Decorators are optional and require explicit token injection (no emitDecoratorMetadata).

Links:


@setu-ts/logger-plugin

Purpose: Structured logging with pluggable backends.

Capability Token: CAPABILITIES.LOGGER

Runtime Compatibility:

DenoNodeBunWorkers

Key Features:

  • Console and file backends
  • Log levels (debug, info, warn, error)
  • Structured JSON output
  • Context injection

Links:


@setu-ts/config-plugin

Purpose: Configuration management with environment variable support and validation.

Capability Token: CAPABILITIES.CONFIG

Runtime Compatibility:

DenoNodeBunWorkers

Key Features:

  • Environment variable loading
  • Variable expansion (${VAR})
  • Zod-compatible validation
  • Multi-source configuration

Links:


@setu-ts/validation-plugin

Purpose: Request validation with Zod integration.

Capability Token: CAPABILITIES.VALIDATION

Runtime Compatibility:

DenoNodeBunWorkers

Key Features:

  • Zod schema validation
  • Request body/query/param validation
  • Custom error formatting
  • Async validators

Links:


@setu-ts/exceptions

Purpose: Exception hierarchy, RFC 9457 Problem Details, and the error-handler middleware.

Capability Token: N/A (middleware-only)

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • HttpError hierarchy
  • RFC 9457 Problem Details format (the 'rfc7807' alias is deprecated but still accepted)
  • Error handler middleware factory

Links:


@setu-ts/openapi-plugin

Purpose: OpenAPI 3.1 spec generation from routes, with a Zod transformer and Swagger UI.

Capability Token: CAPABILITIES.OPENAPI

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • Route-based OpenAPI spec generation
  • Zod schema transformer
  • Swagger UI serving

Links:


Tier 3: Business Capabilities

@setu-ts/database-plugin

Purpose: Database access with repository pattern and ORM adapters.

Capability Token: CAPABILITIES.DATABASE

Runtime Compatibility:

DenoNodeBunWorkers
✅ (with adapters)

Adapters:

  • Memory (built-in)
  • Prisma (via npm: adapter)
  • Drizzle (via npm: adapter)
  • D1 (Cloudflare Workers)

Links:


@setu-ts/cache-plugin

Purpose: Caching with multiple backend support.

Capability Token: CAPABILITIES.CACHE

Runtime Compatibility:

DenoNodeBunWorkers
✅ (KV)

Stores:

  • Memory (built-in)
  • Redis (via npm:ioredis)
  • Cloudflare KV

Links:


@setu-ts/auth-plugin

Purpose: Authentication and authorization with JWT and API key support.

Capability Token: CAPABILITIES.AUTHENTICATION, CAPABILITIES.AUTHORIZATION

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • JWT (HS256, RS256)
  • API key authentication
  • RBAC with role hierarchy
  • Local strategy for login flows
  • Password hashing (PBKDF2-SHA256)

Links:


@setu-ts/messaging-plugin

Purpose: Message broker integration for event-driven architectures.

Capability Token: CAPABILITIES.MESSAGING

Runtime Compatibility:

DenoNodeBunWorkers

Brokers:

  • In-memory (built-in)
  • Redis Streams (via npm:ioredis)
  • RabbitMQ (via npm:amqplib)
  • NATS (via npm:nats)
  • Kafka (via npm:kafkajs)
  • GCP Pub/Sub (via npm:@google-cloud/pubsub)
  • Azure Service Bus (via npm:@azure/service-bus)

Workers is not supported by this package: every broker except the in-memory default needs raw sockets or an npm SDK that does not run on the edge. The capability itself IS available there — @setu-ts/cloudflare-plugin registers CAPABILITIES.MESSAGING from the platform, serving publish/subscribe over Workers Queues and request/reply through a Durable Object reply inbox. An application registers exactly one provider of the token, so the choice is per deployment target, not per call site.

Features:

  • Publish/subscribe
  • Request/reply (RPC)
  • Events bridge
  • Message persistence

Links:


@setu-ts/queue-plugin

Purpose: Job queue with retries, scheduling, and multiple backends.

Capability Token: CAPABILITIES.QUEUE

Runtime Compatibility:

DenoNodeBunWorkers

Adapters:

  • Memory (built-in)
  • Redis (via npm:ioredis)
  • RabbitMQ (via npm:amqplib)
  • SQS (via npm:@aws-sdk/client-sqs)

Workers Queues belong to @setu-ts/cloudflare-plugin, not this package — the queue-plugin adapters all need raw sockets or an npm SDK unavailable on the edge.

Links:


@setu-ts/events-plugin

Purpose: Domain event publishing and handling.

Capability Token: CAPABILITIES.EVENTS

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • DomainEvent, IntegrationEvent
  • In-memory event bus
  • Event persistence (via messaging)

Links:


@setu-ts/cqrs-plugin

Purpose: Command-Query Responsibility Segregation pattern implementation.

Capability Token: CAPABILITIES.CQRS

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • CommandBus, QueryBus
  • Handler registration
  • Pipeline behaviors

Links:


Tier 4: Infrastructure

@setu-ts/metrics-plugin

Purpose: Prometheus metrics collection.

Capability Token: CAPABILITIES.METRICS

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • Counter, Gauge, Histogram, Summary
  • HTTP metrics collection
  • /metrics endpoint

Links:


@setu-ts/health-plugin

Purpose: Health checks and readiness probes.

Capability Token: CAPABILITIES.HEALTH

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • Built-in health indicators
  • Custom health checks
  • Aggregated health endpoint

Links:


@setu-ts/telemetry-plugin

Purpose: OpenTelemetry integration for distributed tracing.

Capability Token: CAPABILITIES.TELEMETRY

Runtime Compatibility:

DenoNodeBunWorkers
✅ (limited)

Features:

  • Request tracing
  • W3C traceparent propagation
  • OTLP exporter
  • Auto-instrumentation (Node-only)

Links:


@setu-ts/scheduler-plugin

Purpose: Scheduled job execution with cron support.

Capability Token: CAPABILITIES.SCHEDULER

Runtime Compatibility:

DenoNodeBunWorkers
❌ (use Workers Cron)

Features:

  • 5-field UTC cron parser
  • Fixed-interval and one-shot jobs
  • Retry with backoff
  • Distributed locking

Links:


@setu-ts/secrets-plugin

Purpose: Secret management with multiple cloud providers.

Capability Token: CAPABILITIES.SECRETS

Runtime Compatibility:

DenoNodeBunWorkers
✅ (env)

Providers:

  • Environment variables (default)
  • AWS Secrets Manager
  • GCP Secret Manager
  • Azure Key Vault
  • HashiCorp Vault

Links:


@setu-ts/audit-plugin

Purpose: Audit logging with pluggable storage.

Capability Token: CAPABILITIES.AUDIT

Runtime Compatibility:

DenoNodeBunWorkers
✅ (KV)

Storage:

  • Memory (default)
  • File (JSONL)
  • Database
  • Cloudflare KV

Links:


@setu-ts/resilience-plugin

Purpose: Resilience patterns (circuit breaker, retry, timeout, bulkhead).

Capability Token: CAPABILITIES.RESILIENCE

Runtime Compatibility:

DenoNodeBunWorkers

Patterns:

  • Circuit breaker
  • Retry with backoff
  • Timeout
  • Bulkhead

Links:


@setu-ts/storage-plugin

Purpose: Object storage with multiple cloud providers.

Capability Token: CAPABILITIES.STORAGE

Runtime Compatibility:

DenoNodeBunWorkers
✅ (R2)

Providers:

  • Memory (default)
  • Local filesystem
  • AWS S3
  • Google Cloud Storage
  • Azure Blob Storage
  • Backblaze B2

Links:


@setu-ts/mail-plugin

Purpose: Email sending with multiple providers.

Capability Token: CAPABILITIES.MAIL

Runtime Compatibility:

DenoNodeBunWorkers
✅ (HTTP)

Providers:

  • Log (default, for development)
  • SMTP (Node/Deno/Bun only)
  • AWS SES
  • SendGrid

Links:


@setu-ts/notification-plugin

Purpose: Multi-channel notifications (email, SMS, push, Slack).

Capability Token: CAPABILITIES.NOTIFICATION

Runtime Compatibility:

DenoNodeBunWorkers
✅ (HTTP)

Channels:

  • Email (via mail plugin)
  • SMS (Twilio)
  • Push (FCM)
  • Slack

Links:


@setu-ts/feature-flags-plugin

Purpose: Feature flag management with multiple providers.

Capability Token: CAPABILITIES.FEATURE_FLAGS

Runtime Compatibility:

DenoNodeBunWorkers

Providers:

  • Config (inline, immutable)
  • Memory (mutable)
  • Database (polling)
  • LaunchDarkly (Node-only)

Links:


@setu-ts/multi-tenancy-plugin

Purpose: Multi-tenancy with multiple isolation strategies.

Capability Token: CAPABILITIES.MULTI_TENANCY

Runtime Compatibility:

DenoNodeBunWorkers

Strategies:

  • Column isolation
  • Schema isolation
  • Database isolation

Resolvers:

  • Subdomain
  • Header
  • Path
  • JWT

Links:


@setu-ts/session-plugin

Purpose: Cookie-based sessions and CSRF protection.

Capability Token: CAPABILITIES.SESSION

Runtime Compatibility:

DenoNodeBunWorkers
✅ (KV)

Features:

  • Encrypted cookies (default)
  • Server-side storage (memory, cache)
  • Key rotation
  • Form CSRF (synchronizer token)

Links:


Tier 5: Platform-Specific

@setu-ts/cloudflare-plugin

Purpose: Cloudflare Workers platform integration.

Capability Token: CAPABILITIES.CLOUDFLARE

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • KV cache/session stores
  • D1 database adapter
  • R2 storage provider
  • Durable Objects (backplane, locks)
  • Workers Queues
  • Cron Triggers
  • Messaging (CAPABILITIES.MESSAGING) — publish/subscribe over Workers Queues, and request/reply through a Durable Object reply inbox
  • Cache API middleware

Links:


@setu-ts/grpc-plugin

Purpose: gRPC and Connect-ES support.

Capability Token: CAPABILITIES.GRPC

Runtime Compatibility:

DenoNodeBunWorkers

Protocols:

  • gRPC
  • Connect-ES
  • gRPC-Web

Links:


@setu-ts/graphql-plugin

Purpose: GraphQL server with schema-first and code-first support.

Capability Token: CAPABILITIES.GRAPHQL

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • Schema-first and code-first
  • Subscriptions (WebSocket, SSE)
  • GraphiQL
  • Automatic Persisted Queries

Links:


@setu-ts/react-router-plugin

Purpose: React Router SSR integration.

Capability Token: CAPABILITIES.SSR

Runtime Compatibility:

DenoNodeBunWorkers

Note: Requires Node/npm toolchain for client build.

Links:


@setu-ts/sse-plugin

Purpose: Server-Sent Events support.

Capability Token: CAPABILITIES.SSE

Runtime Compatibility:

DenoNodeBunWorkers

Links:


@setu-ts/view-plugin

Purpose: Server-rendered HTML as a capability — view engines for JSX and html-tag components, named by reference.

Capability Token: CAPABILITIES.VIEW

Runtime Compatibility:

DenoNodeBunWorkers

Views are pure functions rendered to strings — no filesystem, no sockets — so the capability is portable by construction. A tree holding a pending <Suspense> boundary is refused by name (UnresolvedSuspenseError) rather than served as its fallback forever; streaming resolution is deferred to a follow-up milestone.

Links:


@setu-ts/websocket-plugin

Purpose: WebSocket support with room broadcasting.

Capability Token: CAPABILITIES.WEBSOCKET

Runtime Compatibility:

DenoNodeBunWorkers

Links:


@setu-ts/worker-pool-plugin

Purpose: CPU-intensive tasks on worker threads.

Capability Token: CAPABILITIES.WORKER_POOL

Runtime Compatibility:

DenoNodeBunWorkers

Links:


@setu-ts/realtime-backplane-plugin

Purpose: Cross-replica real-time communication.

Capability Token: CAPABILITIES.REALTIME_BACKPLANE

Runtime Compatibility:

DenoNodeBunWorkers

Transports:

  • Memory (default)
  • Messaging (brokered)
  • Redis
  • Custom

The Durable Objects backplane belongs to @setu-ts/cloudflare-plugin, not this package. This plugin ships the memory, messaging, redis, and custom transports; on Workers, register the cloudflare-plugin’s durableObject arm for the DO-backed IRealtimeBackplane instead.

Links:


@setu-ts/static-plugin

Purpose: Static file serving with caching and range requests.

Capability Token: CAPABILITIES.STATIC_FILES

Runtime Compatibility:

DenoNodeBunWorkers

Workers has no filesystem, so the plugin registers its capability but mounts no route — a degraded health indicator reports “no file system on this runtime”. Serve assets through Workers Assets or an R2 bucket via @setu-ts/cloudflare-plugin instead; this package has no R2 implementation.

Links:


@setu-ts/service-discovery-plugin

Purpose: Service discovery for microservices.

Capability Token: CAPABILITIES.SERVICE_DISCOVERY

Runtime Compatibility:

DenoNodeBunWorkers
✅ (HTTP)

Providers:

  • Static
  • Consul
  • Kubernetes
  • DNS-SRV

Links:


@setu-ts/http-security-plugin

Purpose: Security middleware (CORS, headers, CSRF, rate limiting).

Capability Token: N/A (middleware-only)

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • CORS
  • Security headers
  • CSRF protection
  • Rate limiting
  • IP security

Links:


Tooling

@setu-ts/cli

Purpose: Command-line interface for scaffolding and code generation.

Runtime Compatibility:

DenoNodeBunWorkers
N/A

Commands:

  • setu new <name> - Create a new project (--template rest|microservice|class-based|full-stack, --runtime deno|node|bun|cloudflare-workers); --template class-based opts into decorators and dependency injection together, and every other template is functional
  • setu new <name> --workspace - Create a monorepo root (--port, --transport)
  • setu generate <type> <name> - Generate code; 14 schematics, 11 of them wired into a registration site with no edit to a file you own
  • setu generate app <name> - Add a service to a workspace, allocating its port and registering it in every sibling’s discovery map
  • setu commands - List the commands this project’s plugins provide

Installation:

deno install -g -A --min-dep-age 0 -n setu jsr:@setu-ts/cli@^0.6.0/main

Links:


@setu-ts/sdk

Purpose: Client SDK for consuming Setu-TS applications.

Runtime Compatibility:

DenoNodeBunWorkers

Features:

  • HTTP client with auth interceptors
  • Resilience (retry, circuit breaker, rate limit)
  • OpenAPI code generation

Links:


@setu-ts/testing

Purpose: Testing utilities for Setu-TS applications.

Runtime Compatibility:

DenoNodeBunWorkers

Utilities:

  • createTestApp() - Test application factory
  • inject() - Test request injection
  • createMockPlugin() - Mock plugin creator

Links:


Starters

@setu-ts/rest-starter

Purpose: Opinionated REST API composition library.

Runtime Compatibility:

DenoNodeBunWorkers

Includes: Runtime, Logger, Config, Validation, Exceptions, DI, Decorators, Auth, HTTP Security, OpenAPI, Health, Metrics.

Links:


@setu-ts/microservice-starter

Purpose: Opinionated microservice composition library.

Runtime Compatibility:

DenoNodeBunWorkers

Includes: All REST starter plugins + Messaging, Queue, Resilience, Telemetry, Service Discovery.

Links:


@setu-ts/full-stack-starter

Purpose: Opinionated full-stack (SSR) composition library.

Runtime Compatibility:

DenoNodeBunWorkers

Includes: All REST starter plugins + React Router, Session, Database.

Links:


Notes

  • Workers Compatibility: Packages marked ✅ for Workers run on the platform. Packages with HTTP-only providers (mail, storage, notification) work when configured with HTTP-based backends.
  • Provider Limitations: Some packages have providers that are not Workers-compatible (e.g., SMTP for mail, raw sockets for messaging). Check individual package documentation.
  • Runtime Detection: Use detectRuntime() from @setu-ts/runtime to conditionally enable features based on the runtime.