この記事の要点
- 「What’s new in Swift」連載の2026年4月号で、サーバーサイド Swift 向けの Valkey クライアント valkey-swift 1.0 のリリースを伝えるゲスト寄稿から始まり、注目の動画、新しいパッケージのリリース、そして Swift Evolution の動きを取り上げています。
- ゲスト寄稿では、valkey-swift が Swift 6 と structured concurrency をベースに一から構築され、すべてのコマンドが型付きのレスポンスを返し、strict concurrency checking によってデータ競合をコンパイル時に検出することが強調されています。Redis 向けの RediStack からの移行ガイドも用意されています。
- 言語面では、レビュー中の標準ライブラリへの
FilePath追加(SE-0529)と、最近採択されたUniqueBox(SE-0517)・テスト時のカスタムリフレクション(ST-0022)、そして Networking の Vision が紹介されています。Proposal についてはいずれも Swift Digest にダイジェストがあります。
この号は公式の定期ダイジェストなので、ここでは Swift 利用者が押さえておくとよい注目トピックを選んで整理し、Swift Digest 内外の関連リンクを示します。網羅的な一覧は元記事を参照してください。
注目トピック
valkey-swift 1.0(ゲスト寄稿)
今月は、Valkey ブログで告知された valkey-swift 1.0 のリリースを受けて、作者の一人である Adam Fowler 氏がゲスト寄稿しています。
Valkey は、サーバーアプリケーションでキャッシュ層やメッセージブローカーとして広く使われる高性能データストアで、Redis のオープンソースフォークです。valkey-swift は Valkey サーバーを対象としたクライアントライブラリですが、Redis に対しても同様に利用できます。
要点として次のような特徴が語られています。
- Swift 6 と structured concurrency を前提に一から構築されている。すべての Valkey コマンドが型付きのレスポンスを返し、コンパイル時に型チェックされる。
- strict concurrency checking をライブラリ全体で有効にしているため、データ競合は本番環境ではなくコンパイラによって検出される。
- 接続やサブスクリプションはすべて structured concurrency のスコープで管理され、リソースが自動的にクリーンアップされる。
- 全標準コマンドを Valkey 自身のコマンド仕様から自動生成しており、サーバーの進化に追従しやすい。
従来 Redis のデファクトなクライアントライブラリは pre-concurrency の概念の上に構築された RediStack でしたが、structured concurrency を後付けするのは難しく、valkey-swift の新機能の一部は実現困難でした。Redis のライセンス変更とオープンソースフォークの Valkey 誕生が重なったこともあり、新しいライブラリを一から作る好機だったとのことです。サーバーサイド Swift で高速なキーバリューストアが必要な場合は、Swift Package Manager で導入してすぐに使い始められます。RediStack からの移行ガイドやドキュメントも公開されています。
注目の動画・新しいパッケージ
- 動画: try! Swift Tokyo 2026 では Embedded Swift に関する2本の講演が行われ、組み込みシミュレータや Game Boy Advance 上での実行例を扱う入門的な Getting started with Embedded Swift と、Raspberry Pi Pico のベアメタルサンプルを題材により踏み込んだ Learn by Building: Bare-Metal Programming with Embedded Swift が紹介されています。ほかに、Swift 並行処理の設計・利用に携わったエンジニアによる ライブ Q&A と、オプショナルの応用的な扱いを解説した Nil Coalescing の Advanced Techniques for Working with Optionals in Swift が挙げられています。
- 新しいパッケージ: ロボティクスシステムの設計・プログラミング・制御のためのフレームワーク IndustrialKit、システムフレームワークや Foundation を必要とせずクロスプラットフォームで動作し GNU・PAX 拡張に対応した純 Swift 製の TAR ライブラリ swift-tar、SAX・DOM・XPath 1.0 を依存ゼロでカバーする純 Swift 製 XML パーサ Xylem が紹介されています。
- Embedded Swift については、Blogダイジェスト ARM・RISC-V マイクロコントローラで Embedded Swift を始める や Swift 6.3 でやってくる Embedded Swift の改善 もあわせて参照してください。
Swift Evolution の動き
標準ライブラリ・所有権・テスト・ネットワーキングまわりの Proposal とビジョンが動いています。Proposal についてはいずれも Swift Digest にダイジェストがあります。
- SE-0529 Add
FilePathto the Standard Library(レビュー中): swift-system パッケージのFilePathは、プラットフォーム固有のパス構文を開発者に代わって解析し、正規化されたパスコンポーネントのビューを提供し、ファイルシステム上での解決を可能にします。しかし外部パッケージとして提供されているため、標準ライブラリ・Swift ランタイム・Foundation などのツールチェインライブラリがこれに依存できません。本 Proposal は、構築・分解・解決・C 相互運用のための必須機能とともにFilePathと関連型をSwiftモジュールに追加します。 - Vision for Networking(最近採択): Swift のネットワーキングエコシステムが刷新されます。このビジョン文書は、新しい HTTP クライアント・サーバー実装を含む HTTP API の進化、重複した実装や統合の摩擦を減らすための currency type の定義、統一されたネットワーキングスタックの定義という3つの初期注力領域を提案しています。
- SE-0517
UniqueBox(最近採択): Swift では、本来ヒープに置かれない値を手動でヒープに配置する必要が生じることがあります。本 Proposal は、ヒープ上の値を一意に所有するスマートポインタ型UniqueBoxを標準ライブラリに追加します。C++ のstd::unique_ptrや Rust のBoxに相当する~Copyableな値型で、スコープを抜けるとヒープ領域が自動で解放されます。 - ST-0022 Custom reflection during testing(最近採択): テストが失敗すると、Swift Testing は関係する値をリフレクションで分解して診断を助けますが、型がその出力内容をカスタマイズする手段がありませんでした。本 Proposal はカスタマイズポイント
CustomTestReflectableを追加し、テスト出力に含める情報を簡略化・隠蔽・拡張・再整形できるようにします。
関連リンク
- 1つ前の号は Blogダイジェスト Swiftの最新情報: 2026年3月号 を参照してください。
- サーバーサイド Swift の話題として、Blogダイジェスト サーバーサイド Swift エコシステムの成長 もあわせて参照してください。