AphrodyBun GitHub

Aphrody Bun

The Bun runtime of Aphrody

aphrody-labs/bun is a fork of oven-sh/bun 1.4.4: upstream arrives by merge and the Aphrody patches stay on top. Current release: aphrody-v1.4.3-aphrody.4.

Current versions

ItemVersionSource
Runtime1.4.3-aphrody.4, based on Bun 1.4.4aphrody-v1.4.3-aphrody.4
Source67f218154586 (2026-10-10)aphrody-labs/bun
Upstreamlast merge c1de6f2335 (2026-10-09)oven-sh/bun
Fork commits514 since 2026-10-02 (merge commits excluded)Runtime
npm@aphrody/bun-runtime 1.4.3-aphrody.2npmjs.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).

ArtifactSource in this repositoryConsumer in Aphrody
Runtime binaryaphrody-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)
Installersscripts/aphrody/install.sh, install.ps1, served as bun.aphrody.com/install (.sh) and /install.ps1every runtime install in Aphrody: bootstrap, Docker images, yolo update, hosts
Container imageghcr.io/aphrody-labs/bun (private), from scripts/aphrody/deploy/docker/build and production hosts (docs/project/auto-deploy.mdx)
Types and tooling packagesnpm @aphrody/bun-types, @aphrody/bun-inspector-protocol, … (scripts/aphrody/publish-npm.ts)workspaces
Rust cratescrates.io aphrody-bun-native-plugin, aphrody-bun-macro (scripts/aphrody/publish-crates.ts)native plugins
Documentationdocs/, published at bun.aphrody.com by scripts/aphrody/site/docs/reference/upstream-bun (bun run docs:bun:update), MCP bun_docs_*
Source checkoutAPHRODY_BUN_CHECKOUT, else C:\bun on WindowsMCP bun_docs_*, training corpora

Patches

The Aphrody commits on top of upstream that merges keep. Each one has its test.

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-labs organization maintains this component. Maintainers merge changes into main and 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 in test/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 a bun branch. Here that branch is an alias of main. 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 @aphrody scope are resolved during the merge by scripts/aphrody/scope.ts.
  • On a conflict, the files this repository owns keep its version: README.md, SECURITY.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md and docs/installation.mdx (OWNED in sync-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:

  1. 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 the aphrody/build-linux:26.04 (glibc) and aphrody/build-alpine:3.24 (musl) images.
  2. Check every binary: bun --version must print <base>-aphrody.<n>, bun --revision must show the release commit, and a smoke test must pass.
  3. Package each binary under the upstream archive names (bun-<os>-<arch>[-musl].zip, each containing bun-<os>-<arch>[-musl]/bun[.exe]). Write SHA256SUMS.txt with LF line endings; the installers check archives against it.
  4. Publish the release with gh release create aphrody-v<version> --repo aphrody-labs/bun, then publish npm with bun 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.