Bun

許可證

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 的 `.cpp` 繫結到 JavaScriptCore(即使用 JavaScriptCore 的物件檔案),並輸出一個新的 `bun` 二進位制檔案,其中包含您的更改。

連結的庫

Bun 靜態連結以下庫

許可證
boringssl多種許可證
brotliMIT
libarchive多種許可證
lol-htmlBSD 3-Clause
mimallocMIT
picohttp雙重許可,使用 Perl License 或 MIT License
zstd雙重許可,使用 BSD License 或 GPLv2 license
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 程式碼的某些部分 Tigerbeetle 的 IO 程式碼Apache 2.0 許可

Polyfills

出於相容性原因,以下包已嵌入到 Bun 的二進位制檔案中,並在匯入時注入。

附加致謝

  • Bun 的 JS 轉譯器、CSS 詞法分析器和 Node.js 模組解析器的原始碼是 @evanw 的 @evanwesbuild 專案的 Zig 移植。
  • 感謝 @kipply 提供“Bun”這個名字!