Open
Description
opened on May 6, 2022
Bun's roadmap
2024 Q4
bun install
- Implement a text-based lockfile format #11863 (will unblock add support for
bun
dependabot/dependabot-core#6528) - Support nested "resolutions" / "overrides" #6608
- Fixes for frequently-reported issues for things like private git URLs and some edgecases with hoisting
-
bun update --interactive
(Interactive update packages command. #4895) - CA support for SSL connection to NPM registries #271
- Support an
"engines"
field inpackage.json
#5846 - Update
bun init
to add"engines": { "bun": ...
by default. Ifbun
present then ignore node shebangs by default (#9346) -
bun why
(likeyarn why
) #692
Runtime
Node.js compatibility
- Implement
node:http2
server to unblock grpc2 - Implement more of V8 C++ APIs to unblock canvas, node-pty
- Rewrite node:http (Rewrite node:http to not use Request & Response #14384)
- Add much more comprehensive test coverage for napi
- Get at least 75% of Node's test suite running on every commit (as of last update: 15% currently). This number will go up in future
- Investigate removing our
undici
override - Rewrite
node:crypto
#13681
Reliability
Bake (Bundler)
The goal for Bake is to make Bun the most productive tool for building static & full-stack JavaScript and TypeScript applications, leveraging runtime, bundler, and transpiler integration to make things simpler.
High level:
- Make a fast HMR development full-stack server - bake dev server tracking issue #14324
- Production builds (bake production build tracking issue #14763)
- Static production builds
- Implement an integration with a popular framework (such as Next.js)
- Easy & powerful plugin API
bun test
- Reporter API or socket API
Organizational
- Hire a contractor to help us with CI
- Hire a technical writer to help with docs
- Hire an engineering-focused role for maintaining the TypeScript types & frontend for docs + help with integrations with third-party packages
- Hire more systems engineers
Previous quarters
2024 Q3
bun install
Essentially, feature complete.
-
bun outdated
- Implement
bun pm pack
#487 -
bun publish
- Text-based lockfile format (which will help unblock add support for
bun
dependabot/dependabot-core#6528) -
bun update --interactive
(Interactive update packages command. #4895) - Fixes for frequently-reported issues for things like private git URLs and some edgecases with hoisting
Runtime
Node.js compatibility
- TextEncoderStream & TextDecoderStream
- V8 C++ API (in-progress)
- Implement
node:cluster
- Implement
node:http2
server to unblock grpc2 - Rewrite
node:zlib
to address performance issues in some common packages - Rewrite
node:crypto
#13681 - Fix various bugs in
node:http
, avoid wrapping Bun.serve() and fetch() and use a more direct implementation - Add much more comprehensive test coverage for napi
- Get at least 25% of Node's test suite running on every commit (as of last update: 15% currently). This number will go up in future quarters.
Reliability
- Delete almost all code that manually reads JSValue. Replace with an IDL bindings generator for JavaScriptCore objects/classes that supports C++ & Zig output, and importantly: function arguments, return values, and exceptions. It should make the lifetime of these values brainless for us to reason about.
- Address TLS-related issues that have cropped up
- Continue to allocate significant time to fixing bugs and improve test coverage as they crop up
Bundler
- Fix many common bugs people run into related to source maps or incorrect output
- A new, higher-level iteration of Bun's bundler designed for server-driven JavaScript bake dev server tracking issue #14324
- CSS parser and bundler MVP of CSS parser #14167
bun test
- Reporter API or socket API
Organizational
- Hire a contractor to help us with CI
- Hire a technical writer to help with docs
- Hire an engineering-focused role for maintaining the TypeScript types & frontend for docs + help with integrations with third-party packages
- Hire more systems engineers
Activity