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整理維護