【Bun中文文档-Project】License

111 阅读2分钟

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 --recursive
  • make jsc
  • zig build

这会编译 JavaScriptCore,编译 Bun 的用于 JavaScriptCore 的.cpp绑定(这些是使用 JavaScriptCore 的对象文件),并输出具有您的更改的新的bun二进制文件。

链接库

Bun 静态链接了以下库:

许可证
boringssl多个许可证
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
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"这个名称!