Skip to main content
Bun 本身使用 MIT 许可证。

JavaScriptCore

Bun 静态链接 JavaScriptCore(以及 WebKit),后者使用 LGPL-2 许可证。来自 WebKit 的 WebCore 文件也使用 LGPL-2 许可证。根据 LGPL-2:
(1) 如果你静态链接了 LGPL 授权的库,你还必须以对象(不一定是源代码)格式提供你的应用程序,以便用户有机会修改该库并重新链接应用程序。
Bun 的 WebKit 补丁版本位于 https://github.com/oven-sh/webkit。要使用更改重新链接 Bun:
  • git clone https://github.com/oven-sh/WebKit vendor/WebKit
  • bun sync-webkit-source(检出 WEBKIT_VERSIONscripts/build/deps/webkit.ts 中指定的版本)
  • bun run build:local
bun run build:local 编译 JavaScriptCore,编译 Bun 的 JavaScriptCore .cpp 绑定(使用 JavaScriptCore 的目标文件),并输出一个包含你的更改的新 bun 二进制文件。

链接的库

Bun 静态链接了以下库:

Polyfill

为了兼容性,Bun 将以下软件包嵌入到其二进制文件中,并在导入时注入。

额外鸣谢

  • Bun 的 JS 转译器、CSS 词法分析器和 Node.js 模块解析器的源代码移植自 @evanwesbuild 项目。
  • 感谢 @kipply 为 Bun 命名。