许可证
Bun 的许可证
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/WebKitbun sync-webkit-source(检出scripts/build/deps/webkit.ts中WEBKIT_VERSION指定的版本)bun run build:local
bun run build:local 会编译 JavaScriptCore,编译 Bun 针对 JavaScriptCore 的 .cpp 绑定(使用 JavaScriptCore 的目标文件),并输出一个包含你所做修改的新 bun 二进制文件。
链接的库
Bun 静态链接以下库:
| 库 | 许可证 |
|---|---|
boringssl | 多个许可证 |
brotli | MIT |
libarchive | 多个许可证 |
lol-html | BSD 3-Clause |
ls-hpack | MIT(捆绑的 xxhash 采用 BSD 2-Clause 许可证) |
ls-qpack | MIT |
lsquic | MIT(部分代码源自 Chromium proto-quic,采用 BSD 3-Clause 许可证) |
mimalloc | MIT |
picohttp | Perl 许可证或 MIT 许可证(双重许可) |
zstd | BSD 许可证或 GPLv2 许可证(双重许可) |
simdutf | Apache 2.0 |
tinycc | LGPL v2.1 |
uSockets | Apache 2.0 |
zlib-ng | zlib |
c-ares | MIT 许可 |
libicu 78 | ICU 许可证 |
libbase64 | BSD 2-Clause |
libuv(在 Windows 上) | MIT |
libdeflate | MIT |
libjpeg-turbo | BSD 3-Clause / IJG / zlib |
libspng | BSD 2-Clause(部分代码源自 libpng,采用 PNG Reference Library License v2) |
libwebp | BSD 3-Clause |
highway | Apache 2.0 |
HdrHistogram_c | 根据 CC0 1.0 或 BSD 2-Clause 许可证双重许可 |
sqlite(在 Linux 和 Windows 上) | 公共领域 |
uWebsockets 的一个分支 | 采用 Apache 2.0 许可证 |
| Tigerbeetle 的 IO 代码 的部分代码 | 采用 Apache 2.0 许可证 |
Polyfill
为确保兼容性,Bun 会将以下软件包嵌入其二进制文件中,并在导入这些软件包时注入它们。
| 软件包 | 许可证 |
|---|---|
acorn | MIT |
acorn-walk | MIT |
assert | MIT |
browserify-zlib | MIT |
buffer | MIT |
constants-browserify | MIT |
crypto-browserify | MIT |
domain-browser | MIT |
events | MIT |
https-browserify | MIT |
os-browserify | MIT |
path-browserify | MIT |
process | MIT |
punycode | MIT |
querystring-es3 | MIT |
stream-browserify | MIT |
stream-http | MIT |
string_decoder | MIT |
timers-browserify | MIT |
tty-browserify | MIT |
url | MIT |
util | MIT |
vm-browserify | MIT |
额外鸣谢
- Bun 的 JS transpiler 和 Node.js module resolver 源代码移植自 @evanw 的 esbuild 项目。
- Bun 的 CSS parser 源代码衍生自 Lightning CSS 和 Servo 项目。
- 感谢 @kipply 取名为 “Bun”。