この記事の要点
- 「What’s new in Swift」連載の2026年9月号で、10周年を迎えた Web フレームワーク Vapor の作者によるゲスト寄稿から始まり、Swift 6.4 のリリース、コミュニティの話題、新しいパッケージのリリース、そして Swift Evolution の動きを取り上げています。
- 冒頭のゲスト寄稿では、Vapor Core Team の Tim 氏が、10周年に合わせて公開された Vapor 5 の最初のベータを紹介しています。Vapor 5 は完全な書き直しで、structured concurrency に全面対応し、
EventLoopFutureから卒業しました。 - 9月の最大のニュースは Swift 6.4 のリリースで、SwiftPM のデフォルトビルドシステムが Swift Build になったこと、Subprocess の 1.0 到達、JavaScriptKit による WebAssembly ブリッジの最大40倍の高速化などが挙げられています。
- Swift Evolution では、デプロイメントターゲットによる条件付きコンパイル(SE-0554)がレビュー中で、SE-0546・SE-0548・ST-0029 が採択、SE-0540 が修正のうえ採択されました。いずれも Swift Digest にダイジェストがあります。
この号は公式の定期ダイジェストなので、ここでは Swift 利用者が押さえておくとよい注目トピックを選んで整理し、Swift Digest 内外の関連リンクを示します。網羅的な一覧は元記事を参照してください。
注目トピック
Vapor 10周年と Vapor 5 ベータ(ゲスト寄稿)
Swift の Web フレームワーク Vapor が10周年を迎え、Vapor Week として記念の発信を行いました。今月のゲスト寄稿は、Vapor Core Team の Tim 氏によるものです。
10年前の9月に Vapor 1.0 がリリースされて以来、Vapor は Swift でバックエンドや API を構築するための包括的なフレームワークへと成熟してきました。その記念日に合わせて、次のメジャーバージョンである Vapor 5 の最初のベータが公開されています。
- 完全な書き直しで、6年分の技術的負債を取り除いた
- structured concurrency に全面対応し、ついに
EventLoopFutureを廃した - HTTP の処理そのものは新しい Swift HTTP Server に任せ、Vapor は Web フレームワークとしての役割に集中する
「表現力があり、使いやすく、強力な、Swift でサーバーアプリケーションを作るためのフレームワーク」という目標は当初から変わっていないとのことです。更新・多言語化され、アクセシビリティも改善されたドキュメントを含む全体の話は Vapor Week にまとめられています。サーバーサイド Swift に興味があれば、Vapor 5 ベータを試してフィードバックしてほしいと呼びかけています。
Swift 6.4 のリリース
9月の最大のニュースは Swift 6.4 のリリースです。相互運用性の深化、プラットフォームサポートの強化、日々のコードの書きやすさの向上をもたらすリリースで、主なハイライトとして次が挙げられています。
- SwiftPM のデフォルトのビルドシステムが Swift Build になった
- Subprocess が 1.0 に到達した
- JavaScriptKit による WebAssembly ブリッジが最大40倍高速になった
詳しくは Blogダイジェスト Swift 6.4 リリース を参照してください。リリースに先立って、6.4 に含まれる機能を掘り下げた記事も2本公開されています。
- Swift のデバッグ情報におけるモジュール追跡: パスベースの正確なモジュール import によって LLDB の名前検索がより確実になり、dSYM やバイナリのサイズも小さくなる仕組みを解説しています。Bazel・Buck・CMake などのビルドシステムのメンテナは、
-modulewrap/-add_ast_pathを-debug-module-pathに置き換えることが推奨されています。 - Swift 6.4 でやってくる Embedded Swift の改善: マイクロコントローラをはじめとする制約の多い環境向けの Swift の改善をまとめています。
コミュニティの話題
- Google が Swift 向けの公式 Google Cloud クライアントライブラリを公開しました。SwiftNIO と Swift Concurrency の上に構築されており、バックエンドサービスや CLI ツールから、Cloud Storage・IAM・Secret Manager・Gemini をはじめとする100以上の Google Cloud サービスに async/await でアクセスできます。Linux と macOS の両方で動作します。
- A minimal kernel in Swift running in QEMU は、OS なしで Swift を動かす試みです。Embedded Swift と
@c属性を使い、メッセージを表示して入力をエコーする最小限のカーネルを QEMU 上で起動しています。 - Solbach Leads が Swift の導入事例を公開しました。本番運用中の AI データパイプラインを Kotlin と Spring Boot から Swift と Vapor へ移行した経緯を紹介しており、移行から6か月で月5,200万件以上のタスクを処理しているとのことです。
- Stop Sleeping: Deterministic Tests for Concurrent Swift Code は、テスト中の
Task.sleepをテストスパイに置き換え、時計を待たずにタイムアウト・エラー・キャンセルを検証できるようにする方法を紹介しています。 - 毎月恒例の Swift for Wasm の近況報告 September 2026 updates では、Wasm Swift SDK のスレッドの実験的サポート(現時点では nightly スナップショットのみ)、JavaScriptKit の新しい uWASI オプション、ElementaryUI のカスタム要素が取り上げられています。
新しいパッケージのリリース
- WasmKit: Swift で書かれた WebAssembly ランタイムです。0.4 リリースではインタプリタの速度が2倍になり、ESP32-C6 マイクロコントローラや Playdate でも動作するようになりました。
- Swift AWS Lambda Runtime 3.0: init・build・deploy 用の SwiftPM プラグインが追加されました。ビルドプラグインは zip または OCI イメージとしてパッケージングでき、コンパイル方法も Docker、Apple の
container、Swift Static Linux SDK によるクロスコンパイルから選べます。
Swift Evolution の動き
ビルド設定や条件付きコンパイル、分散アクター、テストツール連携まわりの Proposal が動いています。いずれも Swift Digest にダイジェストがあります。
- SE-0554 Deployment target conditional compilation(レビュー中):
if #available(...)で API が実行時に利用可能かどうかは判定できますが、import・型エイリアス・適合・stored property・宣言全体の切り替えには使えず、これらはモジュールのコンパイル時に決める必要がありました。本 Proposal は#if deploymentTargetAtLeast(...)を追加し、ライブラリが別途ビルドシステムのフラグを管理することなく、最小 OS バージョンごとに異なるソースをコンパイルできるようにします。 - SE-0546 Same-file memberwise initializer extensions(採択): struct のメンバーワイズイニシャライザを
publicにしたい場合、これまでは本体の宣言内に定義するしかなく、エクステンションで定義すると再宣言エラーになっていました。マクロが生成する struct ではメンバーワイズイニシャライザを公開する手段がありませんでした。本 Proposal は、メンバーワイズイニシャライザとデフォルトのinit()を同一ファイル内のエクステンションで定義できるようにします。 - SE-0548
resignRemoteIDfor remote distributed actor references(採択):DistributedActorSystemはローカルの分散アクターのライフサイクルをassignID(_:)/resignID(_:)で把握でき、resolve(id:as:)でリモート参照の作成にも関与できますが、リモート参照がデイニシャライズされたことを知る手段はありませんでした。本 Proposal は、リモートの分散アクターのプロキシがデイニシャライズされたときに呼ばれるresignRemoteID(_:)を追加し、リモート参照が使っている間だけ接続を維持するといった実装を可能にします。 - ST-0029 Include additional issue metadata in event stream(採択): Xcode や VS Code などのツールは Swift Testing の JSON イベントストリームを利用していますが、
throwされたエラーと手動のIssue.record呼び出しのような issue の種類を区別するための構造化された情報が不足していました。本 Proposal は issue イベントにエラー・confirmation の回数不一致・制限時間超過・式といったフィールドを追加し、ツールがより豊かな失敗情報を表示できるようにします。 - SE-0540 Default Target Settings(修正のうえ採択、レビュー時の名称は Default Package Settings): Swift パッケージでは、すべてのターゲットに同じ設定フラグを使うことが多く、これまではターゲットごとに重複して書くか、パッケージ定義後に
package.targetsを書き換える必要がありました。本 Proposal はPackageのイニシャライザでdefaultSwiftSettings・defaultCSettings・defaultCXXSettings・defaultLinkerSettingsとしてデフォルト設定を定義できるようにし、各ターゲットがそれをどう継承するかを.defaultsプレースホルダで制御できるようにします。
関連リンク
- 1つ前の号は Blogダイジェスト Swiftの最新情報: 2026年8月号 を参照してください。
- Swift 6.4 の詳細は Blogダイジェスト Swift 6.4 リリース を参照してください。