91 lines
11 KiB
Plaintext
91 lines
11 KiB
Plaintext
---
|
||
title: License
|
||
description: 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".
|