Current versions
| Item | Version | Source |
|---|---|---|
| Runtime | 1.4.3-aphrody.4, based on Bun 1.4.4 | aphrody-v1.4.3-aphrody.4 |
| Source | 67f218154586 (2026-10-10) | aphrody-labs/bun |
| Upstream | last merge c1de6f2335 (2026-10-09) | oven-sh/bun |
| Fork commits | 514 since 2026-10-02 (merge commits excluded) | Runtime |
| npm | @aphrody/bun-runtime 1.4.3-aphrody.2 | npmjs.com |
Role in Aphrody
aphrody-labs/bun is the runtime component of Aphrody. Every runtime change Aphrody needs is made in this
repository, as a commit on main. The Aphrody product repository (aphrody-labs/aphrody) has no Bun patch queue,
no vendored copy of Bun and no Rust copy of Bun code. It uses the artifacts below.
The runtime also owns the system layer. That covers Windows and Linux APIs, FFI, native libraries, the system Rust crates, and .NET, C and C++ interop. The product consumes this layer; it does not keep its own copy (docs/aphrody/LAYERS.md).
| Artifact | Source in this repository | Consumer in Aphrody |
|---|---|---|
| Runtime binary | aphrody-v* GitHub releases; npm @aphrody/bun-runtime (scripts/aphrody/publish-runtime.ts) | the distribution's Bun pin (tools/config/update/pins.json follows these releases) |
| Installers | scripts/aphrody/install.sh, install.ps1, served as bun.aphrody.com/install (.sh) and /install.ps1 | every runtime install in Aphrody: bootstrap, Docker images, yolo update, hosts |
| Container image | ghcr.io/aphrody-labs/bun (private), from scripts/aphrody/deploy/docker/ | build and production hosts (docs/project/auto-deploy.mdx) |
| Types and tooling packages | npm @aphrody/bun-types, @aphrody/bun-inspector-protocol, … (scripts/aphrody/publish-npm.ts) | workspaces |
| Rust crates | crates.io aphrody-bun-native-plugin, aphrody-bun-macro (scripts/aphrody/publish-crates.ts) | native plugins |
| Documentation | docs/, published at bun.aphrody.com by scripts/aphrody/site/ | docs/reference/upstream-bun (bun run docs:bun:update), MCP bun_docs_* |
| Source checkout | APHRODY_BUN_CHECKOUT, else C:\bun on Windows | MCP bun_docs_*, training corpora |
Patches
The Aphrody commits on top of upstream that merges keep. Each one has its test.
- Built-in replacements of npm packages.
dotenv(anddotenv/config),picocolors,tiny-invariantanduuidresolve to built-in modules:src/js/thirdparty/, logic ofdotenvinsrc/js/internal/dotenv.ts, registered insrc/resolve_builtins/HardcodedModule.rs. Tests:test/js/first_party/dotenv/,picocolors/,tiny-invariant/,uuid/. bun:ffidlopen(path, symbols, { global })(RTLD_NOW | RTLD_GLOBAL):src/js/bun/ffi.ts,src/runtime/ffi/FFIObject.rs,ffi_body.rs,src/sys/lib.rs,packages/bun-types/ffi.d.ts. Test:test/js/first_party/runtime/dlopen-global.test.ts.- argv0 aliasing. A
--compileexecutable renamedbun,bunxornodeacts as the runtime itself (src/runtime/cli/mod.rs). Test:test/js/first_party/runtime/argv0-bun-alias.test.ts. - Rust native link propagation for the Linux linker.
scripts/build/rust/native-link.tsand the build scripts underscripts/build/. Test:test/internal/build-rust-native-link.test.ts. - Windows build tools.
scripts/vs-shell.ps1finds a Build Tools-only Visual Studio installation. @aphrodynpm scope. Publishable packages are renamed byscripts/aphrody/scope.ts(--checklists remaining upstream names,--writerewrites them).
The other additions (bun:* modules, CLI commands, packages, documentation pages) are listed with their sources on
bun.aphrody.com/runtime, generated from the Git history.
Governance
- Maintainers. The
aphrody-labsorganization maintains this component. Maintainers merge changes intomainand publish releases. - Decisions. Design decisions that affect the distribution are recorded in
docs/aphrody/. - Contributions. Contributions arrive as pull requests against
main(CONTRIBUTING.md). Every change comes with a test. Tests for code that exists only in this component go intest/js/first_party/. - Security reports. Handled as described in SECURITY.md.
- Code of conduct. CODE_OF_CONDUCT.md.
Branches
main. The only working branch.bun. Every aphrody-labs repository that ports a project to Bun (tailwindcss, base-ui, next.js, shenron) publishes the port on abunbranch. Here that branch is an alias ofmain. It never receives direct commits; it only moves by fast-forward (git push origin main:bun).
Upstream
Upstream oven-sh/bun changes arrive only by merge: bun scripts/aphrody/sync-upstream.ts [--push].
- Package renames to the
@aphrodyscope are resolved during the merge byscripts/aphrody/scope.ts. - On a conflict, the files this repository owns keep its version:
README.md,SECURITY.md,CODE_OF_CONDUCT.md,CONTRIBUTING.mdanddocs/installation.mdx(OWNEDinsync-upstream.ts). - Any other conflict stops the sync.
The workflows under .github/workflows/aphrody-*.yml describe the automated version of this process. GitHub Actions
is disabled on this repository, so maintainers run the sync by hand.
Releases
A release is the aphrody-v<base>-aphrody.<n> tag. Its notes are in RELEASES.md. Maintainers
publish a release by hand, in these steps:
- Build each target with
bun scripts/build.ts --profile=release --lto=off --canary=off --version-tag=aphrody.<n>. Windows builds run on Windows. Linux builds use theaphrody/build-linux:26.04(glibc) andaphrody/build-alpine:3.24(musl) images. - Check every binary:
bun --versionmust print<base>-aphrody.<n>,bun --revisionmust show the release commit, and a smoke test must pass. - Package each binary under the upstream archive names (
bun-<os>-<arch>[-musl].zip, each containingbun-<os>-<arch>[-musl]/bun[.exe]). WriteSHA256SUMS.txtwith LF line endings; the installers check archives against it. - Publish the release with
gh release create aphrody-v<version> --repo aphrody-labs/bun, then publish npm withbun scripts/aphrody/publish-runtime.ts publish --version <version> --assets <dir>.
Generated on 2026-10-10 from aphrody-labs/bun at 67f218154586, the public repositories of aphrody-labs.