Files
bun.sh/docs/project/licensing.md
Jarred Sumner 893f70fee4 Single-file standalone Bun executables (#2879)
* Add LIEF

* Compile LIEF

* Implement support for embedding files on macOS

* proof of concept

* Add zstd

* Implement runtime support

* Move some code around

* Update .gitmodules

* Upgrade zig

https://github.com/ziglang/zig/pull/15278

* leftover

* leftover

* delete dead code

* Fix extname

* Revert "Upgrade zig"

This reverts commit dd968f30bf.

* Revert "leftover"

This reverts commit 7664de7686.

* Revert "leftover"

This reverts commit 498005be06.

* various fixes

* it works!

* leftover

* Make `zig build` a little faster

* give up on code signing support

* Support Linux & macOS

* Finish removing LIEF

* few more

* Add zstd to list of deps

* make it pretty

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-14 06:13:39 -07:00

213 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 LGPLd 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 Buns `.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:
{% table %}
- Library
- License
---
- [`boringssl`](https://boringssl.googlesource.com/boringssl/)
- [several licenses](https://boringssl.googlesource.com/boringssl/+/refs/heads/master/LICENSE)
---
- [`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
---
- [`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-cloudflare`](https://github.com/cloudflare/zlib)
- zlib
---
- [`c-ares`](https://github.com/c-ares/c-ares)
- MIT licensed
---
- [`libicu`](https://github.com/unicode-org/icu) 72
- [license here](https://github.com/unicode-org/icu/blob/main/icu4c/LICENSE)
---
- A fork of [`uWebsockets`](https://github.com/jarred-sumner/uwebsockets)
- Apache 2.0 licensed
{% /table %}
## Polyfills
For compatibility reasons, the following packages are embedded into Bun's binary and injected if imported.
{% table %}
- Package
- License
---
- [`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
{% /table %}
## Additional credits
- Bun's JS transpiler, CSS lexer, and Node.js module resolver source code is a Zig port of [@evanw](https://github.com/evanw)s [esbuild](https://github.com/evanw/esbuild) project.
- Credit to [@kipply](https://github.com/kipply) for the name "Bun"!