Skip to content

Bun 本身采用 MIT 许可证。

JavaScriptCore

Bun 静态链接 JavaScriptCore(和 WebKit),它们采用 LGPL-2 许可证。来自 WebKit 的 WebCore 文件也采用 LGPL2 许可证。根据 LGPL2:

(1) 如果你静态链接到 LGPL 许可的库,你还必须提供你的应用程序的目标(不一定是源代码)格式,以便用户有机会修改库并重新链接应用程序。

你可以在这里找到 Bun 使用的 WebKit 补丁版本:https://github.com/oven-sh/webkit。如果你想用更改重新链接 Bun:

  • git submodule update --init --recursive
  • make jsc
  • zig build

这会编译 JavaScriptCore,编译 Bun 的 JavaScriptCore 的 .cpp 绑定(这些是使用 JavaScriptCore 的目标文件),并输出一个带有你更改的新 bun 二进制文件。

链接的库

Bun 静态链接这些库:

许可证
boringssl多种许可证
brotliMIT
libarchive多种许可证
lol-htmlBSD 3-Clause
mimallocMIT
picohttp双重许可,采用 Perl 许可证或 MIT 许可证
zstd双重许可,采用 BSD 许可证或 GPLv2 许可证
simdutfApache 2.0
tinyccLGPL v2.1
uSocketsApache 2.0
zlib-cloudflarezlib
c-aresMIT 许可
libicu 72许可证在此
libbase64BSD 2-Clause
libuv(在 Windows 上)MIT
libdeflateMIT
uWebsockets 的分支Apache 2.0 许可
Tigerbeetle 的 IO 代码的一部分Apache 2.0 许可

Polyfills

出于兼容性原因,以下包嵌入到 Bun 的二进制文件中,并在导入时注入。

许可证
assertMIT
browserify-zlibMIT
bufferMIT
constants-browserifyMIT
crypto-browserifyMIT
domain-browserMIT
eventsMIT
https-browserifyMIT
os-browserifyMIT
path-browserifyMIT
processMIT
punycodeMIT
querystring-es3MIT
stream-browserifyMIT
stream-httpMIT
string_decoderMIT
timers-browserifyMIT
tty-browserifyMIT
urlMIT
utilMIT
vm-browserifyMIT

额外致谢

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

Bun学习网由www.bunjs.com.cn整理维护