Bun stesso è con licenza MIT.
JavaScriptCore
Bun collega staticamente JavaScriptCore (e WebKit) che è con licenza LGPL-2. I file WebCore di WebKit sono anche con licenza LGPL2. Secondo LGPL2:
(1) Se ti colleghi staticamente a una libreria con licenza LGPL, devi anche fornire la tua applicazione in un formato oggetto (non necessariamente sorgente), in modo che un utente abbia l'opportunità di modificare la libreria e ricollegare l'applicazione.
Puoi trovare la versione patchata di WebKit usata da Bun qui: https://github.com/oven-sh/webkit. Se desideri ricollegare Bun con modifiche:
git submodule update --init --recursivemake jsczig build
Questo compila JavaScriptCore, compila i binding .cpp di Bun per JavaScriptCore (che sono i file oggetto che usano JavaScriptCore) e produce un nuovo binario bun con le tue modifiche.
Librerie collegate
Bun collega staticamente queste librerie:
| Libreria | Licenza |
|---|---|
boringssl | varie licenze |
brotli | MIT |
libarchive | varie licenze |
lol-html | BSD 3-Clause |
mimalloc | MIT |
picohttp | doppia licenza Perl License o MIT License |
zstd | doppia licenza BSD License o GPLv2 |
simdutf | Apache 2.0 |
tinycc | LGPL v2.1 |
uSockets | Apache 2.0 |
zlib-cloudflare | zlib |
c-ares | MIT |
libicu 72 | licenza qui |
libbase64 | BSD 2-Clause |
libuv (su Windows) | MIT |
libdeflate | MIT |
Un fork di uWebsockets | Apache 2.0 |
| Parti del codice IO di Tigerbeetle | Apache 2.0 |
Polyfill
Per ragioni di compatibilità, i seguenti pacchetti sono incorporati nel binario di Bun e iniettati se importati.
| Pacchetto | Licenza |
|---|---|
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 |