Vercel FunctionsがBun.serveをエントリーポイントとしてサポートしWebSocket利用が可能に

Vercelは、Bunランタイムで動作するVercel Functionsにおいて、Bun.serve()を関数のエントリーポイントとして指定できる機能を公開しました。プロジェクトルートに配置したserver.tsにサーバー処理を記述することで、特定のWebフレームワークを介さずにローカル環境と同じコードをそのままデプロイして実行できます。
この変更により、静的パスや動的パス、ワイルドカードを含むルートマップを柔軟に構成できるほか、fetchメソッド内でのserver.upgrade呼び出しによるWebSocket接続のアップグレードにも対応しました。従来、Vercel Functions上でBunのネイティブなWebSocket機能を直接扱うには制約がありましたが、今回のアップデートでネイティブハンドラーの利用が可能になっています。
利用にあたっては、vercel.jsonファイル内でbunVersionを1.x以上に指定し、Bunフレームワークのプリセットを適用する必要があります。既存のプロジェクトを移行する場合は、エントリーポイントのファイル名やルーティング定義をBun.serveの仕様に合わせるための構成変更が必要となる点に注意が必要です。
Related tools
この記事に関連するおすすめツール
比較検討しやすい導入候補を優先して表示しています。一部リンクは広告・アフィリエイトを含む場合があります。
フェレット記者の用語メモ
Vercel Functions
Vercel上で動作するサーバーレス関数実行環境だよ。今回のBun対応で、ローカルと本番の差異を埋める手間が減るけど、Cold Start(起動遅延)の問題は依然として残る。特にWebSocketのアップグレード処理において、初動のレスポンスがタイムアウトしないようランタイムの起動速度やメモリ割り当てには神経を使う必要があるよ。
比較: AWS Lambda
WebSocket
HTTPとは異なり、一度の接続で双方向通信を維持し続けるプロトコルだよ。サーバーレス環境で使う場合、関数の実行時間制限によって接続が強制切断される「最大持続時間の壁」に必ずぶつかる。切断後の再接続ロジックをクライアント側で厳密に作り込まないと、ユーザーの画面が静かにフリーズする事故が多発するよ。
比較: HTTP Long Polling
出典: Vercel Changelog
要点を短く整理して掲載しています。詳細は出典を確認してください。

