Vercel (ヴァーセル) は2026年8月10日(現地時間)、Vercel Functions (ヴァーセル ファンクションズ) 向けBun (バン) ランタイムが、Bun.serve()をファンクションエントリーポイントとしてサポートすると発表しました。これにより、WebSocket (ウェブソケット) ハンドラを含む、Bunでローカル実行されるサーバーを、特別なフレームワークにラップすることなくVercel Functionsに直接デプロイできるようになります。この機能は、vercel.jsonファイルに"bunVersion": "1.x"を設定することで有効になります。
Bun.serve()を用いたサーバーは、プロジェクトのルートにあるserver.tsファイルにroutesマップを定義することで構築できます。これにより、静的、動的、ワイルドカードを含む柔軟なルーティング設定が可能となります。
WebSocket接続については、fetch関数内でserver.upgrade(request)を呼び出すことで、一致するリクエストをアップグレードできます。WebSocket接続はFluid compute (フルイド コンピュート) とActive CPU pricing (アクティブ シーピーユー プライシング) で動作します。このため、メッセージ処理に費やした時間のみが課金対象となり、アイドル接続時間は課金されません。単一の接続は関数の1つのインスタンスに固定されますが、1つのインスタンスで複数の同時接続を処理することが可能です。複数のインスタンス間でメッセージを連携させる必要がある場合は、外部のデータストアを使用する必要があります。
参考: Vercel Blog (アーカイブ) — 2026年8月10日 09:00 (JST)
原文ハイライト"Bun runtime for Vercel Functions now accepts Bun.serve as an entrypoint"