許可證
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”。