Skip to content

fix(bootstrap): download hyperd from the Java API bundle, not C++#121

Merged
StefanSteiner merged 1 commit into
tableau:mainfrom
StefanSteiner:fix/bootstrap-java-package
Jun 8, 2026
Merged

fix(bootstrap): download hyperd from the Java API bundle, not C++#121
StefanSteiner merged 1 commit into
tableau:mainfrom
StefanSteiner:fix/bootstrap-java-package

Conversation

@StefanSteiner

Copy link
Copy Markdown
Contributor

Tableau's C++ macos-arm64 zip ships an x86_64 hyperd (upstream packaging defect), so on Apple Silicon the bootstrapped hyperd only ran under Rosetta — wasting CPU and defeating native performance. The Java macos-arm64 bundle carries a native arm64 hyperd.

Verified empirically: extracted the hyperd from both bundles for the pinned 0.0.25080.r2bfd835b release — C++ macos-arm64 is Mach-O x86_64, Java macos-arm64 is Mach-O arm64. The bundles share an identical URL template (only the java/cxx token) and identical internal layout (lib/hyper/hyperd), so extract.rs is unchanged.

Changes:

  • url.rs / scrape.rs: cxx -> java in the URL template and scrape regex.
  • hyperd-version.toml: replace all 4 per-platform sha256s with the Java bundle hashes (recomputed from the real downloads).
  • Doc/comment + README wording updated to reflect the Java bundle and the rationale.

End-to-end: download now fetches the java zip, sha256 verifies against the new pin, and the installed macos-arm64 hyperd is native arm64 (Hyper version main.0.0.25080.r2bfd835b).

Tableau's C++ macos-arm64 zip ships an x86_64 `hyperd` (upstream
packaging defect), so on Apple Silicon the bootstrapped hyperd only ran
under Rosetta — wasting CPU and defeating native performance. The Java
macos-arm64 bundle carries a native arm64 hyperd.

Verified empirically: extracted the hyperd from both bundles for the
pinned 0.0.25080.r2bfd835b release — C++ macos-arm64 is `Mach-O x86_64`,
Java macos-arm64 is `Mach-O arm64`. The bundles share an identical URL
template (only the java/cxx token) and identical internal layout
(lib/hyper/hyperd), so extract.rs is unchanged.

Changes:
- url.rs / scrape.rs: cxx -> java in the URL template and scrape regex.
- hyperd-version.toml: replace all 4 per-platform sha256s with the Java
  bundle hashes (recomputed from the real downloads).
- Doc/comment + README wording updated to reflect the Java bundle and
  the rationale.

End-to-end: `download` now fetches the java zip, sha256 verifies against
the new pin, and the installed macos-arm64 hyperd is native arm64
(`Hyper version main.0.0.25080.r2bfd835b`).
@StefanSteiner StefanSteiner merged commit 9ca4f24 into tableau:main Jun 8, 2026
12 checks passed
StefanSteiner added a commit to StefanSteiner/hyper-api-rust that referenced this pull request Jun 10, 2026
…ableau#121)

The npm-build-publish workflow still used the C++ API bundle URL
(tableauhyperapi-cxx-*) and its SHA-256 hashes for downloading hyperd.
PR tableau#121 switched hyperdb-bootstrap to the Java bundle (because the C++
macos-arm64 zip ships an x86_64 hyperd — upstream packaging defect), but
missed this workflow which downloads hyperd independently for the npm
package build.

Switch the URL template from cxx → java and update the per-platform
SHA-256 hashes to the Java bundle values (same ones verified and pinned
in hyperdb-bootstrap/hyperd-version.toml).
StefanSteiner added a commit that referenced this pull request Jun 10, 2026
…121) (#130)

The npm-build-publish workflow still used the C++ API bundle URL
(tableauhyperapi-cxx-*) and its SHA-256 hashes for downloading hyperd.
PR #121 switched hyperdb-bootstrap to the Java bundle (because the C++
macos-arm64 zip ships an x86_64 hyperd — upstream packaging defect), but
missed this workflow which downloads hyperd independently for the npm
package build.

Switch the URL template from cxx → java and update the per-platform
SHA-256 hashes to the Java bundle values (same ones verified and pinned
in hyperdb-bootstrap/hyperd-version.toml).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant