By Roxチーム
waku2bun2 - Bunネイティブ対応に向けた取り組み
「全てをBunネイティブに」というチャレンジ
「せっかくBunを使うなら、全てネイティブにできないか」——そんな思いから、WakuのBunネイティブ対応を目指すフォーク「waku2bun2」プロジェクトを開始しました 🚀
waku2bun2とは
waku2bun2は、React Server Components(RSC)フレームワークであるWakuをBunランタイムでネイティブに動作させることを目指すフォークプロジェクトです。
現在の技術的課題
検証の結果、現時点ではBunでのRSC対応に根本的な制限があることが判明しました。
react-server export conditionの未サポート
BunはまだNode.jsのreact-server export conditionをサポートしていません。これはReact Server Componentsの動作に必要な条件です。
error: No matching export in "react-dom/package.json" for import "react-dom"
このため、現時点では開発(dev)・ビルド(build)・実行(start)の全フェーズでNode.jsが必要です。
目指すゴール
waku2bun2では、Bunの対応が進み次第以下を実現することを目指しています:
- 開発時 -
bun waku devでBunネイティブにホットリロード - ビルド時 -
bun waku buildでBunネイティブにビルド - 実行時 -
bun waku startでBunネイティブにサーバー起動
今後の予定
- Bun本体のRSC対応をウォッチ -
react-serverexport conditionのサポート状況を追跡 - 対応が進み次第waku2bun2を更新 - Bunの成熟に合わせて実装を進める
- 問題がなければ本家Wakuへ統合 - 安定性が確認できればアップストリームへコントリビュート
関連リンク
Bunの進化と共に、このプロジェクトも前進していきます。
愛がロックする。Rox。 💜