bunito is a small Bun-first TypeScript framework for building applications with
modules, dependency injection, lifecycle hooks, configuration, logging, HTTP
controllers, and broker-based messaging.
The project is intentionally split into focused packages. You can start with
@bunito/bunito for the core application APIs, then add feature packages such as
@bunito/http or @bunito/broker when you need them.
Source files use role postfixes such as .module.ts, .service.ts,
.controller.ts, .config.ts, and .exception.ts. The CLI-generated project
shape follows the same convention.
The best way to understand the current API is to read and run the examples.
Start with the examples guide: examples/.
@bunito/cli: initialize, generate, run, and build bunito projects@bunito/bunito: convenience entrypoint for core application APIs@bunito/app: application bootstrap, lifecycle coordination, and app hooks@bunito/container: dependency injection, modules, providers, scopes, and lifecycle hooks@bunito/config: typed config factories, environment parsing, and secrets@bunito/logger: injectable loggers, trace helpers, and output transports@bunito/common: shared exceptions, predicates, type helpers, and utilities
@bunito/broker: broker decorators, request/reply APIs, and local or NATS adapters@bunito/bun: Bun server and secrets integrations@bunito/http: HTTP controllers, routing, middleware, CORS, validation, and exceptions@bunito/testing: test context factories and mock helpers for bunito packages
bun run typecheck
bun run lint
bun run test
bun run coverageTests live next to the implementation files they cover. CLI behavior is covered through mocked filesystem, build, and process-runner tests so command behavior can be validated without spawning real apps.
For contribution notes, see CONTRIBUTING.md.
MIT