Skip to content

Bun selbst ist MIT-lizenziert.

JavaScriptCore

Bun linkt JavaScriptCore (und WebKit) statisch, was LGPL-2-lizenziert ist. WebCore-Dateien von WebKit sind ebenfalls unter LGPL2 lizenziert. Gemäß LGPL2:

(1) Wenn Sie statisch gegen eine LGPL-lizenzierte Bibliothek linken, müssen Sie Ihre Anwendung auch in einem Objektformat (nicht unbedingt Quellcode) bereitstellen, sodass ein Benutzer die Möglichkeit hat, die Bibliothek zu modifizieren und die Anwendung neu zu linken.

Sie können die von Bun verwendete gepatchte Version von WebKit hier finden: https://github.com/oven-sh/webkit. Wenn Sie Bun mit Änderungen neu linken möchten:

  • git submodule update --init --recursive
  • make jsc
  • zig build

Dies kompiliert JavaScriptCore, kompiliert Buns .cpp-Bindings für JavaScriptCore (die die Objektdateien sind, die JavaScriptCore verwenden) und gibt eine neue bun-Binärdatei mit Ihren Änderungen aus.

Verknüpfte Bibliotheken

Bun linkt diese Bibliotheken statisch:

BibliothekLizenz
boringsslmehrere Lizenzen
brotliMIT
libarchivemehrere Lizenzen
lol-htmlBSD 3-Clause
mimallocMIT
picohttpdoppelt lizenziert unter der Perl-Lizenz oder der MIT-Lizenz
zstddoppelt lizenziert unter der BSD-Lizenz oder GPLv2-Lizenz
simdutfApache 2.0
tinyccLGPL v2.1
uSocketsApache 2.0
zlib-cloudflarezlib
c-aresMIT-lizenziert
libicu 72Lizenz hier
libbase64BSD 2-Clause
libuv (auf Windows)MIT
libdeflateMIT
Ein Fork von uWebsocketsApache 2.0-lizenziert
Teile von Tigerbeetles IO-CodeApache 2.0-lizenziert

Polyfills

Aus Kompatibilitätsgründen sind die folgenden Pakete in Buns Binärdatei eingebettet und werden injiziert, wenn sie importiert werden.

PaketLizenz
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

Zusätzliche Credits

  • Buns JS-Transpiler, CSS-Lexer und Node.js-Modul-Resolver-Quellcode ist eine Zig-Portierung von @evanws esbuild-Projekt.
  • Dank an @kipply für den Namen "Bun"!

Bun von www.bunjs.com.cn bearbeitet