Roadmap & Contributions
bunway is a community-powered experiment to build the Bun-native, all-in-one web toolkit we want to use. Think of this page as our shared map—and the invitation to help draw the next checkpoints.
Philosophy: Bun-first, Battery-packed
- Bun is the runtime. Fetch, streams, crypto, testing—Bun already ships the toys, we just get to play with them.
- Express vibes forever. Familiar middleware ergonomics make Express expats feel at home on Bun.
- All-in-one ambition. We’re chasing a single package that covers routing, middleware, sessions, security, observability—the works.
- Ship & tell. Every feature rides out with TypeDoc, guides, and examples so the next explorer moves faster.
Core MVP
Express vibes unlocked. bunway now wraps Bun’s Request/Response primitives with the essentials.
WayRequest
,WayResponse
,WayContext
- Router verbs, params, sub-routers, middleware, 404 fallback
- Response finalizer merging middleware header bags
bunway()
factory +app.listen()
- Built-ins:
errorHandler
,cors
,json
,urlencoded
,text
- Bun test suite covering routes, errors, CORS, body limits
HTTP niceties & DX
Polish the experience. Cookies, headers, compression—because ergonomics matter.
- Cookie helpers (parse/set, signed cookies)
- Security headers (helmet-style middleware)
- Compression (gzip/br) via Bun APIs
- Static file serving with cache controls & etags
- Weak/strong ETag helpers for user responses
- Expanded docs & examples
Sessions & auth glue
Give bunway a memory—sessions, CSRF protection, auth helpers.
- Session middleware with pluggable stores (Memory, Redis)
- Session rotation helpers
- CSRF protection (token + cookie)
- Auth helpers for basic/JWT flows
Streaming & uploads
Let bunway flex its streaming muscles—multipart, SSE, websockets.
- Multipart/form-data streaming with limits & storage adapters
- File upload constraints (size, type filters)
- Server-Sent Events helper
- WebSocket routing sugar on top of
Bun.serve
QoS & protection
Keep the gates strong—rate limiting, timeouts, DoS guards.
- Rate limiting (Memory + Redis)
- Request timeouts/aborts + body size guards beyond
Content-Length
- Basic DoS protection (slowloris guards, header sanity checks)
Observability
See everything—logs, request IDs, metrics so we can brag about latency.
- Bun-native logger (morgan-style + structured output)
- Request IDs + trace propagation helpers
- Metrics endpoint (Prometheus) with histograms
How to contribute
How to start
Pick a phase from the roadmap, open an issue to discuss approach, and prototype using Bun’s native APIs. We love rough proof-of-concepts—iterate together!
- Pick a phase – grab the milestone that sparks joy and open an issue/PR.
- Prototype – hack on Bun’s primitives; keep it native, keep it lean.
- Test & document – Bun tests + TypeDoc updates = future contributors thanking you.
- Collaborate – riff in issues, review PRs, shape the roadmap together.
Development workflow
bun install # install deps
bun run test # Bun test suite
bun run typecheck # TypeScript check
bun run format # Prettier
bun run docs # TypeDoc API reference
bun run docs:dev # VitePress docs site (development)
npm run prepare:dist
builds the publishable package (dist/
), ready for npm.
Community promise
Bunway is the clubhouse for Bun devs chasing that Express nostalgia. We’re building the toolkit we want: fast, native, expressive, and delightfully bun-tastic.
Jump in. Share ideas. Iterate quickly. The more we contribute, the sweeter Bun-first programming gets.