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 --recursivemake jsczig build
這會編譯 JavaScriptCore,編譯 Bun 的 JavaScriptCore 的 .cpp 綁定(這些是使用 JavaScriptCore 的目標文件),並輸出一個帶有你更改的新 bun 二進制文件。
鏈接的庫
Bun 靜態鏈接這些庫:
| 庫 | 許可證 |
|---|---|
boringssl | 多種許可證 |
brotli | MIT |
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 |
libuv(在 Windows 上) | MIT |
libdeflate | MIT |
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 |