Bun 本身使用 MIT 许可证。
JavaScriptCore
Bun 静态链接了 JavaScriptCore(以及 WebKit),它使用 LGPL-2 许可证。来自 WebKit 的 WebCore 文件也在 LGPL2 许可证下授权。根据 LGPL2:
(1)如果您静态链接到一个 LGPL 授权的库,您必须以对象(不一定是源代码)的格式提供您的应用程序,以便用户有机会修改库并重新链接应用程序。
您可以在此处找到 Bun 使用的经过修补的 WebKit 版本:github.com/oven-sh/web…。如果您希望使用更改重新链接 Bun:
git submodule update --init --recursivemake jsczig build
这会编译 JavaScriptCore,编译 Bun 的用于 JavaScriptCore 的.cpp绑定(这些是使用 JavaScriptCore 的对象文件),并输出具有您的更改的新的bun二进制文件。
链接库
Bun 静态链接了以下库:
| 库 | 许可证 |
|---|---|
boringssl | 多个许可证 |
libarchive | 多个许可证 |
lol-html | BSD 3-Clause |
mimalloc | MIT |
picohttp | 双许可证,可根据 Perl 许可证或 MIT 许可证 |
zstd | 双许可证,可根据 BSD 许可证或 GPLv2 许可证 |
simdutf | Apache 2.0 |
tinycc | LGPL v2.1 |
uSockets | Apache 2.0 |
zlib-cloudflare | zlib |
c-ares | MIT 许可证 |
libicu 72 | 许可证 |
libbase64 | BSD 2-Clause |
uWebsockets的分支 | Apache 2.0 许可证 |
| Tigerbeetle 的 IO 代码的部分 | Apache 2.0 许可证 |
Polyfills
出于兼容性原因,以下包被嵌入到 Bun 的二进制文件中,并在导入时注入。
| 包 | 许可证 |
|---|---|
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 |