Skip to content

Bun's Roadmap #159

Open
Open
@Jarred-Sumner

Description

Bun's roadmap

2024 Q4

bun install

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:

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.

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    trackingAn umbrella issue for tracking big features

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions