# License

> License for Bun

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 LGPL-2. Per LGPL-2:

> (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.

Bun's patched version of WebKit lives at https://github.com/oven-sh/webkit. To relink Bun with changes:

- `git clone https://github.com/oven-sh/WebKit vendor/WebKit`
- `bun sync-webkit-source` (checks out the version pinned in `WEBKIT_VERSION` in `scripts/build/deps/webkit.ts`)
- `bun run build:local`

`bun run build:local` compiles JavaScriptCore, compiles Bun's `.cpp` bindings for JavaScriptCore (the object files that use JavaScriptCore), and outputs a new `bun` binary with your changes.

## Linked libraries

Bun statically links these libraries:

| Library                                                                                                                                          | License                                                                                      |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- |
| [`boringssl`](https://boringssl.googlesource.com/boringssl/)                                                                                     | [several licenses](https://boringssl.googlesource.com/boringssl/+/refs/heads/master/LICENSE) |
| [`brotli`](https://github.com/google/brotli)                                                                                                     | MIT                                                                                          |
| [`libarchive`](https://github.com/libarchive/libarchive)                                                                                         | [several licenses](https://github.com/libarchive/libarchive/blob/master/COPYING)             |
| [`lol-html`](https://github.com/cloudflare/lol-html/tree/master/c-api)                                                                           | BSD 3-Clause                                                                                 |
| [`ls-hpack`](https://github.com/litespeedtech/ls-hpack)                                                                                          | MIT (bundled xxhash is BSD 2-Clause)                                                         |
| [`ls-qpack`](https://github.com/litespeedtech/ls-qpack)                                                                                          | MIT                                                                                          |
| [`lsquic`](https://github.com/litespeedtech/lsquic)                                                                                              | MIT (portions derived from Chromium proto-quic, BSD 3-Clause)                                |
| [`mimalloc`](https://github.com/microsoft/mimalloc)                                                                                              | MIT                                                                                          |
| [`picohttp`](https://github.com/h2o/picohttpparser)                                                                                              | dual-licensed under the Perl License or the MIT License                                      |
| [`zstd`](https://github.com/facebook/zstd)                                                                                                       | dual-licensed under the BSD License or GPLv2 license                                         |
| [`simdutf`](https://github.com/simdutf/simdutf)                                                                                                  | Apache 2.0                                                                                   |
| [`tinycc`](https://github.com/tinycc/tinycc)                                                                                                     | LGPL v2.1                                                                                    |
| [`uSockets`](https://github.com/uNetworking/uSockets)                                                                                            | Apache 2.0                                                                                   |
| [`zlib-ng`](https://github.com/zlib-ng/zlib-ng)                                                                                                  | zlib                                                                                         |
| [`c-ares`](https://github.com/c-ares/c-ares)                                                                                                     | MIT licensed                                                                                 |
| [`libicu`](https://github.com/unicode-org/icu) 78                                                                                                | [ICU license](https://github.com/unicode-org/icu/blob/main/icu4c/LICENSE)                    |
| [`libbase64`](https://github.com/aklomp/base64/blob/master/LICENSE)                                                                              | BSD 2-Clause                                                                                 |
| [`libuv`](https://github.com/libuv/libuv) (on Windows)                                                                                           | MIT                                                                                          |
| [`libdeflate`](https://github.com/ebiggers/libdeflate)                                                                                           | MIT                                                                                          |
| [`libjpeg-turbo`](https://github.com/libjpeg-turbo/libjpeg-turbo)                                                                                | BSD 3-Clause / IJG / zlib                                                                    |
| [`libspng`](https://github.com/randy408/libspng)                                                                                                 | BSD 2-Clause (portions derived from libpng, PNG Reference Library License v2)                |
| [`libwebp`](https://github.com/webmproject/libwebp)                                                                                              | BSD 3-Clause                                                                                 |
| [`highway`](https://github.com/google/highway)                                                                                                   | Apache 2.0                                                                                   |
| [`HdrHistogram_c`](https://github.com/HdrHistogram/HdrHistogram_c)                                                                               | dual-licensed under CC0 1.0 or the BSD 2-Clause License                                      |
| [`sqlite`](https://sqlite.org) (on Linux and Windows)                                                                                            | [public domain](https://sqlite.org/copyright.html)                                           |
| A fork of [`uWebsockets`](https://github.com/jarred-sumner/uwebsockets)                                                                          | Apache 2.0 licensed                                                                          |
| Parts of [Tigerbeetle's IO code](https://github.com/tigerbeetle/tigerbeetle/blob/532c8b70b9142c17e07737ab6d3da68d7500cbca/src/io/windows.zig#L1) | Apache 2.0 licensed                                                                          |

## Polyfills

For compatibility, Bun embeds the following packages into its binary and injects them if imported.

| Package                                                                  | License |
| ------------------------------------------------------------------------ | ------- |
| [`acorn`](https://github.com/acornjs/acorn)                              | MIT     |
| [`acorn-walk`](https://github.com/acornjs/acorn)                         | MIT     |
| [`assert`](https://npmjs.com/package/assert)                             | MIT     |
| [`browserify-zlib`](https://npmjs.com/package/browserify-zlib)           | MIT     |
| [`buffer`](https://npmjs.com/package/buffer)                             | MIT     |
| [`constants-browserify`](https://npmjs.com/package/constants-browserify) | MIT     |
| [`crypto-browserify`](https://npmjs.com/package/crypto-browserify)       | MIT     |
| [`domain-browser`](https://npmjs.com/package/domain-browser)             | MIT     |
| [`events`](https://npmjs.com/package/events)                             | MIT     |
| [`https-browserify`](https://npmjs.com/package/https-browserify)         | MIT     |
| [`os-browserify`](https://npmjs.com/package/os-browserify)               | MIT     |
| [`path-browserify`](https://npmjs.com/package/path-browserify)           | MIT     |
| [`process`](https://npmjs.com/package/process)                           | MIT     |
| [`punycode`](https://npmjs.com/package/punycode)                         | MIT     |
| [`querystring-es3`](https://npmjs.com/package/querystring-es3)           | MIT     |
| [`stream-browserify`](https://npmjs.com/package/stream-browserify)       | MIT     |
| [`stream-http`](https://npmjs.com/package/stream-http)                   | MIT     |
| [`string_decoder`](https://npmjs.com/package/string_decoder)             | MIT     |
| [`timers-browserify`](https://npmjs.com/package/timers-browserify)       | MIT     |
| [`tty-browserify`](https://npmjs.com/package/tty-browserify)             | MIT     |
| [`url`](https://npmjs.com/package/url)                                   | MIT     |
| [`util`](https://npmjs.com/package/util)                                 | MIT     |
| [`vm-browserify`](https://npmjs.com/package/vm-browserify)               | MIT     |

## Additional credits

- Bun's JS transpiler and Node.js module resolver source code is a port of [@evanw](https://github.com/evanw)’s [esbuild](https://github.com/evanw/esbuild) project.
- Bun's CSS parser source code is derived from the [Lightning CSS](https://github.com/parcel-bundler/lightningcss) and [Servo](https://github.com/servo/servo) projects.
- Credit to [@kipply](https://github.com/kipply) for the name "Bun".
