Roadmap & Contributions
bunway is a community-powered project building the Bun-native, Express-compatible web toolkit we want to use. This page shows what's shipped and what's next.
Philosophy
- Express-compatible – same
(req, res, next)signature and middleware patterns you know - Bun-native – built on Bun's Fetch primitives, no Node polyfills
- Batteries included – one package for routing, middleware, sessions, security, observability
- Community-led – we build what developers actually need
Core MVP
Express-compatible foundation with Bun-native primitives.
BunRequest,BunResponsewith Express-style APIs- Express-compatible
(req, res, next)handler signature - Router verbs, params, sub-routers, middleware, 404 fallback
bunway()factory +app.listen()- Built-ins:
errorHandler,cors,json,urlencoded,text - Comprehensive Bun test suite
HTTP niceties & DX
Polished developer experience with essential middleware.
cookieParser()– parse/set cookies, signed cookieshelmet()– security headerscompression()– gzip/br/deflate compressionserveStatic()– static file serving with cache controls
Sessions & auth
Stateful applications with sessions and authentication.
session()– session middleware with Memory/File storescsrf()– CSRF protection (double-submit cookie pattern)
Streaming & uploads
Advanced request handling for modern applications.
upload()– multipart/form-data with memory & disk storagesse()– Server-Sent Events with heartbeat support- WebSocket routing (types exported)
QoS & protection
Production-ready quality of service features.
rateLimit()– rate limiting with Memory storetimeout()– request timeout with configurable responsehpp()– HTTP Parameter Pollution protection
Observability & DX polish
Visibility and developer utilities for production apps.
logger()– morgan-style request logging with color supportrequestId()– request ID propagationresponseTime()– response time headermethodOverride()– HTTP method override for legacy clientsfavicon()– efficient favicon serving with ETag cachingvalidate()– request validation middleware
Middleware hardening & 100% parity
Every middleware is working — now we're completing them to full parity with their Express counterparts and hardening with comprehensive test coverage.
- Full test suites for all 26 middleware
- 100% option parity with Express counterpart packages
- Edge case coverage and stress testing
- Pluggable stores for rate-limit (Redis, etc.)
- Byte range support in
serveStatic - IETF standard rate limit headers (draft-6)
- Metrics endpoint (Prometheus)
Performance
Now that the DX layer is complete, the focus shifts to making bunway as fast as possible.
- Benchmark suite — establish baseline req/sec numbers
- Streaming compression (avoid buffering full responses)
- Header lookup optimisations
- Middleware chain allocation reduction
- Cookie parser — hand-rolled for speed
Where we need help
All 26 middleware are working. Here's what's left — every item below is an open invitation:
- Test coverage – pick any middleware that interests you and write its test suite
- Option parity – compare a middleware against its Express counterpart, find a missing option, open an issue or send a PR
- Pluggable stores –
rateLimituses an in-memory store; Redis/custom adapters are a great contribution - Performance – benchmarks, profiling, hot-path optimisations
- Docs – usage examples, migration guides, recipe pages
If something is missing or broken, open an issue. If you know how to fix it, open a PR. We review fast.
How to contribute
Getting started
Pick something from the list above, open an issue to discuss the approach, and build on Bun's native APIs.
- Pick a task – anything in Phase 6 or 7, or something you hit in your own project
- Open an issue – describe the gap, expected vs actual behaviour, and your proposed approach
- Build it – use Bun's primitives, keep it lean, match Express API shape
- Test & document – Bun tests + update the relevant docs page
- Submit a PR – we'll review and iterate together
Development workflow
bun install # Install deps
bun run test # Run test suite
bun run typecheck # TypeScript check
bun run format # Prettier formatting
bun run docs:dev # VitePress docs (development)bun run prepare:dist builds the publishable package.
Community promise
bunway is built for developers who love Express patterns but want Bun's speed. The DX foundation is done — now we're making it bulletproof and fast.
Jump in. Share ideas. Help us build the best Express-compatible framework for Bun.