This workspace contains the OpenBitdo runtime, protocol layer, and release packaging scripts.
- Rust edition: 2024
- Minimum supported Rust version: 1.85
- CI and release builds continue to use the current stable toolchain
bitdo_proto: command registry, transport, session, and diagnostics behaviorbitdo_app_core: firmware policy, device workflows, and support-tier gatingbitdo_tui: terminal UI, app state, runtime loop, persistence, and headless APIopenbitdo: beginner-first launcher binary
From cleanroom/sdk:
cargo build --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace --all-targets
./scripts/cleanroom_guard.shcargo run -p openbitdo --
cargo run -p openbitdo -- --mockopenbitdo intentionally exposes a single interactive CLI surface.
Headless automation remains available through the Rust API in bitdo_tui.
./scripts/package-linux.sh v0.0.0-local x86_64
./scripts/package-linux.sh v0.0.0-local aarch64
./scripts/package-macos.sh v0.0.0-local arm64 aarch64-apple-darwinOutputs:
openbitdo-<version>-linux-x86_64.tar.gzopenbitdo-<version>-linux-aarch64.tar.gzopenbitdo-<version>-macos-arm64.tar.gz- standalone binaries for each packaged target
.sha256files for every artifact- macOS
.pkgfrompkgbuild
Current macOS packaging remains unsigned and non-notarized by design.
- Tag from
mainusing av*tag. release.ymlverifies CI, secrets, and release blockers.- Linux and macOS artifacts are built and uploaded.
- GitHub prerelease assets are published from those artifacts.
- AUR and Homebrew metadata are rendered from published release assets.
- AUR and Homebrew publication run only when their repo-variable gates are enabled.
- AUR workflow:
.github/workflows/aur-publish.yml - Homebrew workflow:
.github/workflows/homebrew-publish.yml - Release metadata renderer:
packaging/scripts/render_release_metadata.sh - AUR source of truth:
- tracked package metadata in
packaging/aur/openbitdo-bin - template in
packaging/aur/openbitdo-bin/PKGBUILD.tmpl
- tracked package metadata in
- Homebrew source of truth:
- template in
packaging/homebrew/Formula/openbitdo.rb.tmpl - published tap repo
bybrooklyn/homebrew-openbitdo
- template in
Current repo-variable contract:
AUR_PUBLISH_ENABLED=1HOMEBREW_PUBLISH_ENABLED=1when Homebrew publication is enabledHOMEBREW_TAP_REPO=bybrooklyn/homebrew-openbitdo
Required secrets:
AUR_USERNAMEAUR_SSH_PRIVATE_KEYHOMEBREW_TAP_TOKEN
- Public project overview:
../README.md - RC checklist:
../RC_CHECKLIST.md - Process docs:
../process - Spec docs:
../spec