How samukadev/routerun works
RouteRun is a Bun HTTP routing library. An application registers method/path handlers, middleware, parameter callbacks, and nested routers; Router matches requests and dispatches the applicable handler chain, then exports handlers as Bun-native routes whose responses serve the request. Separate capabilities support route inspection, request logging, and a web viewer with JSON and live-log endpoints. The README documents these features; sampled source confirms key dispatch, context, and observability links, while unsampled implementation details are not inferred.
Main entry points: router.ts Router · visualizer.ts Route viewer · compose.ts Handler dispatcher · context.ts Request context
Components 16
Route registration
- Router
lib/router.ts - Route builder
lib/router.ts - Public exports
lib/index.ts
Request runtime
- Handler dispatcher
lib/compose.ts - Request context
lib/context.ts - Route utilities
lib/utils.ts - Public types
lib/types.ts
Route inspection
- Route viewer
lib/visualizer.ts - Viewer interface
resources/visualizer.html
Request logging
- Logger middleware
lib/logger.ts - Request log store
lib/log-store.ts
Other components
- Application
- Bun server
- HTTP request
- Route handlers
- HTTP response
Connections 19
- Application → Router: registers routes
- Router → Route builder: creates builders
- Application → Bun server: starts server
- Router → Bun server: exports Bun routes
- Bun server → HTTP request: dispatches request
- Bun server → Request context: creates context
- Router → Handler dispatcher: dispatches handlers
- Router → Route utilities: matches paths
- Handler dispatcher → Route handlers: invokes chain
- Route handlers → HTTP response: returns response
- Request context → Route utilities: sanitizes params
- Application → Logger middleware: registers middleware
- Logger middleware → Request log store: records entries
- Application → Route viewer: registers viewer
- Route viewer → Router: reads route metadata
- Route viewer → Request log store: reads and subscribes
- Route viewer → Viewer interface: serves interface
- Application → Public exports: imports API
- Router → Public types: uses contracts