@satzstrom/linux-x64 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +29 -0
- package/bin/satzstrom +0 -0
- package/compliance/bun/README.md +19 -0
- package/compliance/bun/REBUILD-AND-RELINK.md +82 -0
- package/compliance/bun/SOURCE-OFFER.md +15 -0
- package/compliance/bun/licenses/BUN-CLAP-UNLICENSE.txt +24 -0
- package/compliance/bun/licenses/BUN-LICENSE.md +84 -0
- package/compliance/bun/licenses/JAVASCRIPTCORE-COPYING.LIB +488 -0
- package/compliance/bun/licenses/THIRD-PARTY-SOURCE-NOTICES.md +7 -0
- package/compliance/bun/licenses/WEBKIT-JSC-THIRD-PARTY-NOTICES.md +13 -0
- package/compliance/bun/licenses/bun-dependencies/BORINGSSL-LICENSE.txt +238 -0
- package/compliance/bun/licenses/bun-dependencies/BROTLI-LICENSE.txt +19 -0
- package/compliance/bun/licenses/bun-dependencies/C-ARES-LICENSE.md +24 -0
- package/compliance/bun/licenses/bun-dependencies/HDRHISTOGRAM-COPYING.txt +121 -0
- package/compliance/bun/licenses/bun-dependencies/HDRHISTOGRAM-LICENSE.txt +42 -0
- package/compliance/bun/licenses/bun-dependencies/HIGHWAY-LICENSE.txt +371 -0
- package/compliance/bun/licenses/bun-dependencies/LIBARCHIVE-COPYING.txt +65 -0
- package/compliance/bun/licenses/bun-dependencies/LIBDEFLATE-COPYING.txt +22 -0
- package/compliance/bun/licenses/bun-dependencies/LIBJPEG-TURBO-LICENSE.md +135 -0
- package/compliance/bun/licenses/bun-dependencies/LIBSPNG-LICENSE.txt +25 -0
- package/compliance/bun/licenses/bun-dependencies/LIBUV-LICENSE.txt +19 -0
- package/compliance/bun/licenses/bun-dependencies/LIBWEBP-COPYING.txt +31 -0
- package/compliance/bun/licenses/bun-dependencies/LOL-HTML-LICENSE.txt +27 -0
- package/compliance/bun/licenses/bun-dependencies/LS-HPACK-LICENSE.txt +21 -0
- package/compliance/bun/licenses/bun-dependencies/LS-QPACK-LICENSE.txt +21 -0
- package/compliance/bun/licenses/bun-dependencies/LSQUIC-LICENSE.chrome.txt +32 -0
- package/compliance/bun/licenses/bun-dependencies/LSQUIC-LICENSE.txt +21 -0
- package/compliance/bun/licenses/bun-dependencies/MIMALLOC-LICENSE.txt +21 -0
- package/compliance/bun/licenses/bun-dependencies/PICOHTTPPARSER-LICENSE-HEADER.txt +25 -0
- package/compliance/bun/licenses/bun-dependencies/RUST-ARGON2-LICENSE-APACHE.txt +201 -0
- package/compliance/bun/licenses/bun-dependencies/RUST-ARGON2-LICENSE-MIT.txt +22 -0
- package/compliance/bun/licenses/bun-dependencies/TINYCC-COPYING.txt +504 -0
- package/compliance/bun/licenses/bun-dependencies/ZLIB-NG-LICENSE.md +19 -0
- package/compliance/bun/licenses/bun-dependencies/ZSTD-COPYING.txt +339 -0
- package/compliance/bun/licenses/bun-dependencies/ZSTD-LICENSE.txt +30 -0
- package/compliance/bun/licenses/bun-dependencies/manifest.json +206 -0
- package/compliance/bun/licenses/webkit/DTOA-COPYING.txt +26 -0
- package/compliance/bun/licenses/webkit/DTOA-LICENSE.txt +26 -0
- package/compliance/bun/licenses/webkit/FAST-FLOAT-LICENSE.txt +190 -0
- package/compliance/bun/licenses/webkit/ICU-LICENSE.txt +412 -0
- package/compliance/bun/licenses/webkit/MIMALLOC-LICENSE.txt +21 -0
- package/compliance/bun/source-manifest.json +243 -0
- package/compliance/bun/tools/extract-standalone-payload.mjs +25 -0
- package/compliance/bun/tools/fetch-corresponding-source.mjs +48 -0
- package/compliance/bun/tools/relink-standalone-payload.mjs +88 -0
- package/compliance/bun/tools/standalone-payload.mjs +47 -0
- package/licenses/runtime/README.md +9 -0
- package/licenses/runtime/assets/HYPHENATION-NOTICE.md +25 -0
- package/licenses/runtime/assets/hyph-de-1996-LICENSE.txt +64 -0
- package/licenses/runtime/assets/hyph-en-us-LICENSE.txt +32 -0
- package/licenses/runtime/assets/sRGB2014-ICC-LICENSE.txt +8 -0
- package/licenses/runtime/manifest.json +261 -0
- package/licenses/runtime/npm/@modelcontextprotocol/sdk/1.30.0/LICENSE +21 -0
- package/licenses/runtime/npm/@pdf-lib/standard-fonts/1.0.0/LICENSE.md +21 -0
- package/licenses/runtime/npm/@pdf-lib/upng/1.0.1/LICENSE +21 -0
- package/licenses/runtime/npm/ajv/8.20.0/LICENSE +22 -0
- package/licenses/runtime/npm/ajv-formats/3.0.1/LICENSE +21 -0
- package/licenses/runtime/npm/buffer-crc32/0.2.13/LICENSE +19 -0
- package/licenses/runtime/npm/buffer-from/1.1.2/LICENSE +21 -0
- package/licenses/runtime/npm/chromium-bidi/0.6.3/LICENSE +201 -0
- package/licenses/runtime/npm/cross-spawn/7.0.6/LICENSE +21 -0
- package/licenses/runtime/npm/fast-deep-equal/3.1.3/LICENSE +21 -0
- package/licenses/runtime/npm/fast-uri/3.1.5/LICENSE +30 -0
- package/licenses/runtime/npm/hypher/0.2.5/BSD.txt +25 -0
- package/licenses/runtime/npm/isexe/2.0.0/LICENSE +15 -0
- package/licenses/runtime/npm/json-schema-traverse/1.0.0/LICENSE +21 -0
- package/licenses/runtime/npm/mitt/3.0.1/LICENSE +21 -0
- package/licenses/runtime/npm/pako/1.0.11/LICENSE +21 -0
- package/licenses/runtime/npm/path-key/3.1.1/license +9 -0
- package/licenses/runtime/npm/pdf-lib/1.17.1/LICENSE.md +21 -0
- package/licenses/runtime/npm/pend/1.2.0/LICENSE +23 -0
- package/licenses/runtime/npm/playwright/1.61.1/LICENSE +202 -0
- package/licenses/runtime/npm/playwright/1.61.1/NOTICE +5 -0
- package/licenses/runtime/npm/playwright-core/1.61.1/LICENSE +202 -0
- package/licenses/runtime/npm/playwright-core/1.61.1/NOTICE +5 -0
- package/licenses/runtime/npm/shebang-command/2.0.0/license +9 -0
- package/licenses/runtime/npm/shebang-regex/3.0.0/license +9 -0
- package/licenses/runtime/npm/source-map/0.6.1/LICENSE +28 -0
- package/licenses/runtime/npm/source-map-support/0.5.21/LICENSE.md +21 -0
- package/licenses/runtime/npm/tslib/1.14.1/LICENSE.txt +12 -0
- package/licenses/runtime/npm/typescript/5.9.3/LICENSE.txt +55 -0
- package/licenses/runtime/npm/urlpattern-polyfill/10.0.0/LICENSE +19 -0
- package/licenses/runtime/npm/which/2.0.2/LICENSE +15 -0
- package/licenses/runtime/npm/yauzl/3.2.1/LICENSE +21 -0
- package/licenses/runtime/npm/zod/4.4.3/LICENSE +21 -0
- package/licenses/runtime/npm/zod-to-json-schema/3.25.2/LICENSE +15 -0
- package/package.json +30 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Satzstrom Community Binary License 0.1
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lukas Brückner. All rights reserved.
|
|
4
|
+
|
|
5
|
+
This license applies only to the native Satzstrom renderer binaries. The public
|
|
6
|
+
launcher, primitives, documentation, skill, and examples are licensed
|
|
7
|
+
separately under the MIT License.
|
|
8
|
+
|
|
9
|
+
You may use the binaries for personal work, manual commercial work, and
|
|
10
|
+
automated development or testing. Automated commercial production use,
|
|
11
|
+
including server, API, scheduled, batch, or customer-document generation,
|
|
12
|
+
requires a separate Enterprise license.
|
|
13
|
+
|
|
14
|
+
You may not redistribute the binaries, make them available to third parties as
|
|
15
|
+
a standalone product or service, reverse engineer or circumvent protections,
|
|
16
|
+
or use them to create or improve a competing document renderer.
|
|
17
|
+
|
|
18
|
+
These restrictions do not limit rights granted by third-party licenses. In
|
|
19
|
+
particular, you may reverse engineer the executable as necessary to debug your
|
|
20
|
+
modifications to LGPL-covered components, extract the opaque Satzstrom payload,
|
|
21
|
+
and relink that unchanged payload with a modified compatible runtime for your
|
|
22
|
+
own otherwise licensed use. You may copy and redistribute LGPL-covered
|
|
23
|
+
components and their corresponding source under their respective licenses.
|
|
24
|
+
These permissions do not grant a right to redistribute the proprietary
|
|
25
|
+
Satzstrom payload or a complete Satzstrom binary.
|
|
26
|
+
|
|
27
|
+
The binaries are provided "as is", without warranties or conditions of any
|
|
28
|
+
kind. To obtain an Enterprise license, contact the project owner through the
|
|
29
|
+
Satzstrom GitHub repository.
|
package/bin/satzstrom
ADDED
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Bun Runtime Compliance Bundle
|
|
2
|
+
|
|
3
|
+
Satzstrom platform executables contain the proprietary Satzstrom payload inside a statically linked Bun 1.4.0 runtime. That runtime contains JavaScriptCore, WTF, and bmalloc from Bun's patched WebKit. JavaScriptCore is covered by GNU Library General Public License version 2; other Bun and WebKit portions carry the licenses and notices reproduced in `licenses/` and in the complete corresponding source.
|
|
4
|
+
|
|
5
|
+
This directory is release material, not Satzstrom source. Every platform package must contain it unchanged at `compliance/bun/`.
|
|
6
|
+
|
|
7
|
+
The immutable source identities are in `source-manifest.json`. `REBUILD-AND-RELINK.md` explains how a recipient can modify JavaScriptCore, rebuild Bun, and recombine the rebuilt runtime with the unchanged opaque Satzstrom standalone payload. The process does not use or require the Satzstrom TypeScript source.
|
|
8
|
+
|
|
9
|
+
## Distributor requirements
|
|
10
|
+
|
|
11
|
+
Before making any executable available:
|
|
12
|
+
|
|
13
|
+
1. Run `pnpm verify:compliance` and the platform binary smoke test.
|
|
14
|
+
2. Make the exact Bun and WebKit corresponding-source archives available from the same download location as the binaries. Include all build scripts, dependency lockfiles, patches, generated-source prerequisites, and license files from those exact revisions. Do not rely only on a mutable branch or tag.
|
|
15
|
+
3. Keep `source-manifest.json`, the corresponding-source archives, and their published hashes for as long as the binaries remain available. If counsel chooses a written-offer route instead, replace `SOURCE-OFFER.md` with the approved offer before release and retain the material for the full required period.
|
|
16
|
+
4. Preserve the recipient's right to modify the LGPL-covered library and reverse engineer the executable for debugging those modifications. Distribution terms or technical controls must not contradict those rights.
|
|
17
|
+
5. Perform and record the platform verification checklist in `REBUILD-AND-RELINK.md` for every distributed executable. Version `0.1.0` distributes Windows x64 and Linux x64 only.
|
|
18
|
+
|
|
19
|
+
`pnpm verify:compliance` checks repository and package consistency. It cannot prove that source archives were uploaded, that a download remains available, or that commercial terms satisfy a license. Those are release-owner and legal-review responsibilities.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Rebuild Bun with Modified JavaScriptCore and Relink Satzstrom
|
|
2
|
+
|
|
3
|
+
These instructions operate on the LGPL-covered runtime and the opaque standalone payload already present in a distributed Satzstrom executable. They do not require Satzstrom TypeScript source.
|
|
4
|
+
|
|
5
|
+
## 1. Obtain and verify corresponding source
|
|
6
|
+
|
|
7
|
+
Install Git, Node.js 24 or newer, and the native build prerequisites documented by the pinned Bun revision. From this directory run:
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
node tools/fetch-corresponding-source.mjs --destination ./corresponding-source
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The tool fetches Bun commit `34cbb9a40b4bd1bd767d134a7065e66c2432a676` and WebKit commit `0f966e81b78c84bb23213e391bc679c4ef83e56b`, checks their commit and tree hashes in `source-manifest.json`, and checks out detached worktrees. The release source bundle contains verified Git bundles for Bun, WebKit, and every pinned native build dependency. Each bundle exposes `refs/tags/source` as a deterministic, parentless snapshot commit whose tree is byte-identical to the pinned upstream revision; `archives.json` records both identities. Clone a contained `.bundle` file with `git clone --branch source <archive>.bundle <directory>` to recover its exact source tree without requiring upstream history. Candidate assembly clones every bundle, runs `git fsck --full`, and verifies the snapshot commit and tree. The outer release checksum proves availability of the same audited source bundle. Network archives published by the distributor must also be checked against their release hashes; a Git commit/tree identity verifies content, but does not by itself prove source availability.
|
|
14
|
+
|
|
15
|
+
## 2. Modify and build JavaScriptCore
|
|
16
|
+
|
|
17
|
+
Make desired changes in `corresponding-source/WebKit`. Preserve license headers and add prominent change/date notices where the license requires them. Then build Bun from `corresponding-source/bun` using the local WebKit checkout:
|
|
18
|
+
|
|
19
|
+
PowerShell:
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
$env:BUN_WEBKIT_PATH = (Resolve-Path ..\WebKit)
|
|
23
|
+
bun install --frozen-lockfile
|
|
24
|
+
bun run build:release:local
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
POSIX shell:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
export BUN_WEBKIT_PATH="$(cd ../WebKit && pwd)"
|
|
31
|
+
bun install --frozen-lockfile
|
|
32
|
+
bun run build:release:local
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The expected native output is `build/release-local/bun` (`bun.exe` on Windows). Use a verified Bun 1.4.0 bootstrap executable. The bootstrap npm package integrities for all supported targets are recorded in `source-manifest.json` and `pnpm-lock.yaml`.
|
|
36
|
+
|
|
37
|
+
Bun's pinned source defines the same local-JSC build as `PORT=JSCOnly`, `ENABLE_STATIC_JSC=ON`, `USE_BUN_JSC_ADDITIONS=ON`, and `USE_BUN_EVENT_LOOP=ON`. Do not substitute an unpatched Apple WebKit checkout.
|
|
38
|
+
|
|
39
|
+
## 3. Recombine the unchanged proprietary payload
|
|
40
|
+
|
|
41
|
+
Run the relinker on the same operating system and architecture as the original binary and rebuilt runtime:
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
node tools/relink-standalone-payload.mjs \
|
|
45
|
+
--original /path/to/distributed/satzstrom \
|
|
46
|
+
--runtime /path/to/corresponding-source/bun/build/release-local/bun \
|
|
47
|
+
--output /path/to/satzstrom-relinked
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
On Windows, use `.exe` paths. The tool:
|
|
51
|
+
|
|
52
|
+
1. locates and validates Bun's serialized standalone-module-graph trailer;
|
|
53
|
+
2. compiles a same-size carrier executable with the recipient-built runtime;
|
|
54
|
+
3. replaces only the carrier graph with the byte-identical opaque Satzstrom graph;
|
|
55
|
+
4. verifies the payload SHA-256 after replacement; and
|
|
56
|
+
5. applies executable permissions and ad-hoc signs the modified Mach-O on macOS.
|
|
57
|
+
|
|
58
|
+
The carrier method preserves the rebuilt Bun/WebKit runtime and replaces no runtime bytes. It deliberately does not decode or reconstruct Satzstrom source. Use `--codesign-identity <identity>` on macOS if an identity other than ad-hoc signing is required. Code signing and notarization policy is separate from LGPL relinking.
|
|
59
|
+
|
|
60
|
+
For an official release-candidate proof, use the repository wrapper. It accepts only the runtime at `build/release-local/bun` inside the pinned Bun checkout, verifies the Bun and WebKit commit/tree identities, performs the relink, confirms the unchanged payload and runs the complete private binary smoke suite against the relinked executable. The proof records the full executable and standalone-payload SHA-256 values; candidate assembly must match both values to the executable extracted from the corresponding platform tarball:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
pnpm prove:runtime-relink -- \
|
|
64
|
+
--original /path/to/distributed/satzstrom \
|
|
65
|
+
--bun-source /path/to/corresponding-source/bun \
|
|
66
|
+
--webkit-source /path/to/corresponding-source/WebKit \
|
|
67
|
+
--output /path/to/satzstrom-relinked \
|
|
68
|
+
--evidence /path/to/relink-<target>.json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 4. Verification matrix
|
|
72
|
+
|
|
73
|
+
For every release version, archive a log for each distributed target. Version `0.1.0` distributes Windows x64 and Linux x64 only. The macOS rows document future targets and are not part of this release.
|
|
74
|
+
|
|
75
|
+
| Target | Required verification |
|
|
76
|
+
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
77
|
+
| Windows x64 | Build local-JSC Bun with MSVC/Clang prerequisites; relink `.exe`; confirm payload hash; run `satzstrom --version` and the private binary smoke test; inspect that Authenticode expectations are handled after relinking. |
|
|
78
|
+
| Linux x64 | Build against the documented glibc baseline; relink ELF; confirm payload hash and executable mode; run `satzstrom --version` and the private binary smoke test on the oldest supported glibc host. |
|
|
79
|
+
| macOS x64 | Build on Intel macOS; relink Mach-O; confirm payload hash; ad-hoc or release-sign; run Gatekeeper/signature inspection and the private binary smoke test. |
|
|
80
|
+
| macOS arm64 | Build natively on Apple Silicon; relink Mach-O; confirm payload hash; ad-hoc or release-sign; run Gatekeeper/signature inspection and the private binary smoke test. |
|
|
81
|
+
|
|
82
|
+
Changing JavaScriptCore can intentionally change behavior or break Bun's internal ABI. Successful compilation and payload recombination prove relinkability, not compatibility of every possible JavaScriptCore modification.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Corresponding Source Availability
|
|
2
|
+
|
|
3
|
+
Satzstrom platform binaries use Bun 1.4.0 and statically link the LGPL-covered JavaScriptCore/WTF portions identified in `source-manifest.json`.
|
|
4
|
+
|
|
5
|
+
For Satzstrom 0.1.0, complete corresponding source for the exact Bun and WebKit revisions is published beside the binary packages in the durable public release at:
|
|
6
|
+
|
|
7
|
+
https://github.com/LukasB97/satzstrom/releases/tag/v0.1.0
|
|
8
|
+
|
|
9
|
+
The published source includes the complete revision contents, build and installation scripts, dependency metadata, interface definitions, notices, and every distributor modification. Cryptographic hashes and a reconstruction manifest accompany the release. A fresh download must be verified before any binary package is published.
|
|
10
|
+
|
|
11
|
+
The release assets and their checksums must be retained for as long as the corresponding Satzstrom binaries are distributed. Questions or source-access problems can be reported through GitHub private vulnerability reporting or `lukas@lb-engineering.org`.
|
|
12
|
+
|
|
13
|
+
The repository does not assert that this text alone is a legally sufficient written offer. If corresponding source will not accompany the download, counsel must approve a written offer, its delivery method, duration, territory, and fulfillment process before publication. Record the approved contact and source location in the release notes; do not ship placeholders.
|
|
14
|
+
|
|
15
|
+
For the build and relink procedure, see `REBUILD-AND-RELINK.md`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
This is free and unencumbered software released into the public domain.
|
|
2
|
+
|
|
3
|
+
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
4
|
+
distribute this software, either in source code form or as a compiled
|
|
5
|
+
binary, for any purpose, commercial or non-commercial, and by any
|
|
6
|
+
means.
|
|
7
|
+
|
|
8
|
+
In jurisdictions that recognize copyright laws, the author or authors
|
|
9
|
+
of this software dedicate any and all copyright interest in the
|
|
10
|
+
software to the public domain. We make this dedication for the benefit
|
|
11
|
+
of the public at large and to the detriment of our heirs and
|
|
12
|
+
successors. We intend this dedication to be an overt act of
|
|
13
|
+
relinquishment in perpetuity of all present and future rights to this
|
|
14
|
+
software under copyright law.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
20
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
21
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
For more information, please refer to <http://unlicense.org>
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Bun itself is MIT-licensed.
|
|
2
|
+
|
|
3
|
+
## JavaScriptCore
|
|
4
|
+
|
|
5
|
+
Bun statically links JavaScriptCore (and WebKit) which is LGPL-2 licensed. WebCore files from WebKit are also licensed under LGPL2. Per LGPL2:
|
|
6
|
+
|
|
7
|
+
> (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.
|
|
8
|
+
|
|
9
|
+
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:
|
|
10
|
+
|
|
11
|
+
- `git clone https://github.com/oven-sh/WebKit vendor/WebKit`
|
|
12
|
+
- `bun sync-webkit-source` (checks out the version pinned in `WEBKIT_VERSION` in `scripts/build/deps/webkit.ts`)
|
|
13
|
+
- `bun run build:local`
|
|
14
|
+
|
|
15
|
+
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.
|
|
16
|
+
|
|
17
|
+
## Linked libraries
|
|
18
|
+
|
|
19
|
+
Bun statically links these libraries:
|
|
20
|
+
|
|
21
|
+
| Library | License |
|
|
22
|
+
|---------|---------|
|
|
23
|
+
| [`boringssl`](https://boringssl.googlesource.com/boringssl/) | [several licenses](https://boringssl.googlesource.com/boringssl/+/refs/heads/master/LICENSE) |
|
|
24
|
+
| [`brotli`](https://github.com/google/brotli) | MIT |
|
|
25
|
+
| [`libarchive`](https://github.com/libarchive/libarchive) | [several licenses](https://github.com/libarchive/libarchive/blob/master/COPYING) |
|
|
26
|
+
| [`lol-html`](https://github.com/cloudflare/lol-html/tree/master/c-api) | BSD 3-Clause |
|
|
27
|
+
| [`ls-hpack`](https://github.com/litespeedtech/ls-hpack) | MIT |
|
|
28
|
+
| [`ls-qpack`](https://github.com/litespeedtech/ls-qpack) | MIT |
|
|
29
|
+
| [`lsquic`](https://github.com/litespeedtech/lsquic) | MIT (portions derived from [Chromium proto-quic](https://github.com/litespeedtech/lsquic/blob/master/LICENSE.chrome), BSD 3-Clause) |
|
|
30
|
+
| [`mimalloc`](https://github.com/microsoft/mimalloc) | MIT |
|
|
31
|
+
| [`picohttp`](https://github.com/h2o/picohttpparser) | dual-licensed under the Perl License or the MIT License |
|
|
32
|
+
| [`zstd`](https://github.com/facebook/zstd) | dual-licensed under the BSD License or GPLv2 license |
|
|
33
|
+
| [`simdutf`](https://github.com/simdutf/simdutf) | Apache 2.0 |
|
|
34
|
+
| [`tinycc`](https://github.com/tinycc/tinycc) | LGPL v2.1 |
|
|
35
|
+
| [`uSockets`](https://github.com/uNetworking/uSockets) | Apache 2.0 |
|
|
36
|
+
| [`zlib-ng`](https://github.com/zlib-ng/zlib-ng) | zlib |
|
|
37
|
+
| [`c-ares`](https://github.com/c-ares/c-ares) | MIT licensed |
|
|
38
|
+
| [`libicu`](https://github.com/unicode-org/icu) 78 | [license here](https://github.com/unicode-org/icu/blob/main/icu4c/LICENSE) |
|
|
39
|
+
| [`libbase64`](https://github.com/aklomp/base64/blob/master/LICENSE) | BSD 2-Clause |
|
|
40
|
+
| [`libuv`](https://github.com/libuv/libuv) (on Windows) | MIT |
|
|
41
|
+
| [`libdeflate`](https://github.com/ebiggers/libdeflate) | MIT |
|
|
42
|
+
| [`libjpeg-turbo`](https://github.com/libjpeg-turbo/libjpeg-turbo) | [BSD 3-Clause / IJG / zlib](https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/LICENSE.md) |
|
|
43
|
+
| [`libspng`](https://github.com/randy408/libspng) | BSD 2-Clause |
|
|
44
|
+
| [`libwebp`](https://github.com/webmproject/libwebp) | BSD 3-Clause |
|
|
45
|
+
| [`highway`](https://github.com/google/highway) | Apache 2.0 |
|
|
46
|
+
| [`uucode`](https://github.com/jacobsandlund/uucode) | MIT |
|
|
47
|
+
| A fork of [`uWebsockets`](https://github.com/jarred-sumner/uwebsockets) | Apache 2.0 licensed |
|
|
48
|
+
| Parts of [Tigerbeetle's IO code](https://github.com/tigerbeetle/tigerbeetle/blob/532c8b70b9142c17e07737ab6d3da68d7500cbca/src/io/windows.zig#L1) | Apache 2.0 licensed |
|
|
49
|
+
| `__cxa_thread_atexit` fallback from [LLVM libc++abi](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/libcxxabi/src/cxa_thread_atexit.cpp) | Apache 2.0 with LLVM exception |
|
|
50
|
+
|
|
51
|
+
## Polyfills
|
|
52
|
+
|
|
53
|
+
For compatibility reasons, the following packages are embedded into Bun's binary and injected if imported.
|
|
54
|
+
|
|
55
|
+
| Package | License |
|
|
56
|
+
|---------|---------|
|
|
57
|
+
| [`acorn`](https://github.com/acornjs/acorn) | MIT |
|
|
58
|
+
| [`acorn-walk`](https://github.com/acornjs/acorn) | MIT |
|
|
59
|
+
| [`assert`](https://npmjs.com/package/assert) | MIT |
|
|
60
|
+
| [`browserify-zlib`](https://npmjs.com/package/browserify-zlib) | MIT |
|
|
61
|
+
| [`buffer`](https://npmjs.com/package/buffer) | MIT |
|
|
62
|
+
| [`constants-browserify`](https://npmjs.com/package/constants-browserify) | MIT |
|
|
63
|
+
| [`crypto-browserify`](https://npmjs.com/package/crypto-browserify) | MIT |
|
|
64
|
+
| [`domain-browser`](https://npmjs.com/package/domain-browser) | MIT |
|
|
65
|
+
| [`events`](https://npmjs.com/package/events) | MIT |
|
|
66
|
+
| [`https-browserify`](https://npmjs.com/package/https-browserify) | MIT |
|
|
67
|
+
| [`os-browserify`](https://npmjs.com/package/os-browserify) | MIT |
|
|
68
|
+
| [`path-browserify`](https://npmjs.com/package/path-browserify) | MIT |
|
|
69
|
+
| [`process`](https://npmjs.com/package/process) | MIT |
|
|
70
|
+
| [`punycode`](https://npmjs.com/package/punycode) | MIT |
|
|
71
|
+
| [`querystring-es3`](https://npmjs.com/package/querystring-es3) | MIT |
|
|
72
|
+
| [`stream-browserify`](https://npmjs.com/package/stream-browserify) | MIT |
|
|
73
|
+
| [`stream-http`](https://npmjs.com/package/stream-http) | MIT |
|
|
74
|
+
| [`string_decoder`](https://npmjs.com/package/string_decoder) | MIT |
|
|
75
|
+
| [`timers-browserify`](https://npmjs.com/package/timers-browserify) | MIT |
|
|
76
|
+
| [`tty-browserify`](https://npmjs.com/package/tty-browserify) | MIT |
|
|
77
|
+
| [`url`](https://npmjs.com/package/url) | MIT |
|
|
78
|
+
| [`util`](https://npmjs.com/package/util) | MIT |
|
|
79
|
+
| [`vm-browserify`](https://npmjs.com/package/vm-browserify) | MIT |
|
|
80
|
+
|
|
81
|
+
## Additional credits
|
|
82
|
+
|
|
83
|
+
- Bun's JS transpiler, CSS lexer, and Node.js module resolver source code is a port of [@evanw](https://github.com/evanw)’s [esbuild](https://github.com/evanw/esbuild) project.
|
|
84
|
+
- Credit to [@kipply](https://github.com/kipply) for the name "Bun"!
|