…
…
…
…
…
…

Bun OS

Bun OS is the unified Aphrody/Bun product workspace. It combines the OS distribution factory, shared Bun packages, desktop application, and pinned library/runtime sources under one root Bun workspace. Source repositories are kept as revision-locked submodules so their histories and license notices stay available.

Setup and quality

Requires Bun 1.4.4, Git, and the native toolchains for the targets being built.

bun run setup
bun run check

setup initializes the root locked submodules, installs the single Bun workspace from bun.lock, and selects the shared Cargo target and install directories. Nested submodules remain pinned but are fetched only when their owning component requires them. Run bun run workspace --help for library inventory and capability commands.

Distribution factory

bun src/cli.ts --help
bun src/cli.ts plan --profile full --target linux-x64
bun src/cli.ts sources --out ./out/full-new --config ./factory.local.json
bun src/cli.ts stage --out ./out/full-new --profile full --target linux-x64 --runtime ./ARTIFACT --receipt ./RECEIPT.json
bun src/cli.ts image --out ./out/full-new --profile full --target linux-x64 --tag bun-os:full

Profiles and ABIs are in distribution.json; source revisions are pinned in sources.lock.json. Staging requires the exact locked runtime, target, ABI, hash, byte count, and native runtime qualification. A local Bun snapshot does not qualify a different locked runtime.

The package converter and APT adapter produce metadata and package artifacts; they are distinct from the official APT installation engine. Native package transactions and signatures have separate qualification gates.

Libraries, desktop, and apps

Root packages include the shared workspace/process/hash owners, video adapter, artifact compiler, package converter, and desktop application. Library source projects are pinned below libraries/; the Bun runtime and Tauri SDK source are pinned below toolchains/bun/. App builds and shared assets use the @aphrody/bun-artifacts and @aphrody/bun-workspace owners. Shared Craft font assets, licenses and optional embedding are integrated under fonts/ and crates/craft-fonts; see font ownership and provenance. The two font crates are pinned private forge submodules under the flat crates/ directory. See crate ownership for the shared nightly, workspace and access contract.

The root owns one Bun node_modules, the nightly toolchain, Cargo intermediate outputs in build/rust, and shared target and install locations. The runtime's existing build and vendored dependency trees have not yet been migrated into root-owned locations. Rust source repositories still declare independent Cargo workspaces; the root Cargo workspace migration is tracked in PLAN.md and is incomplete until crate manifests and workspace inheritance have been migrated.

Architecture and evidence

S
Description
No description provided
Readme MIT
114 MiB
0 Stars 0 Watchers 0 Forks
Languages
TypeScript 96.9%
CSS 1.5%
Dockerfile 0.6%
HTML 0.4%
PowerShell 0.3%
Other 0.2%