跳到主要内容

许可证

Bun itself is MIT-licensed.

JavaScriptCore

Bun statically links JavaScriptCore (and WebKit) which is LGPL-2 licensed. WebCore files from WebKit are also licensed under LGPL2. Per LGPL2:

(1) If you statically link against an LGPL’d library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.

You can find the patched version of WebKit used by Bun here: [https://github.com/oven-sh/webkit]. If you would like to relink Bun with changes:

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

This compiles JavaScriptCore, compiles Bun’s .cpp bindings for JavaScriptCore (which are the object files using JavaScriptCore) and outputs a new bun binary with your changes.

Linked libraries

Bun statically links these libraries:

LibraryLicense
boringsslseveral licenses
brotliMIT
libarchiveseveral licenses
lol-htmlBSD 3-Clause
mimallocMIT
picohttpdual-licensed under the Perl License or the MIT License
zstddual-licensed under the BSD License or GPLv2 license
simdutfApache 2.0
tinyccLGPL v2.1
uSocketsApache 2.0
zlib-cloudflarezlib
c-aresMIT licensed
libicu 72license here
libbase64BSD 2-Clause
libuv (on Windows)MIT
libdeflateMIT
A fork of uWebsocketsApache 2.0 licensed
Parts of Tigerbeetle's IO codeApache 2.0 licensed

Polyfills

For compatibility reasons, the following packages are embedded into Bun's binary and injected if imported.

PackageLicense
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

Additional credits

  • Bun's JS transpiler, CSS lexer, and Node.js module resolver source code is a Zig port of @evanw’s esbuild project.
  • Credit to @kipply for the name "Bun"!