Bun itself is MIT-licensed.


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:

boringsslseveral licenses
libarchiveseveral licenses
lol-htmlBSD 3-Clause
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
c-aresMIT licensed
libicu 72license here
libbase64BSD 2-Clause
A fork of uWebsocketsApache 2.0 licensed
Parts of Tigerbeetle's IO codeApache 2.0 licensed


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

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"!