Skip to content

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.
Phase 0 · shipped

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
Phase 1

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
Phase 2

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
Phase 3

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
Phase 4

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)
Phase 5

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!

  1. Pick a phase – grab the milestone that sparks joy and open an issue/PR.
  2. Prototype – hack on Bun’s primitives; keep it native, keep it lean.
  3. Test & document – Bun tests + TypeDoc updates = future contributors thanking you.
  4. Collaborate – riff in issues, review PRs, shape the roadmap together.

Development workflow

bash
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.