この記事の要点
- Swift Ecosystem Steering Group が、新しいワークグループ「Networking workgroup」の発足を発表しました。Swift エコシステムにおけるネットワーキングのライブラリ・プロトコル・API の進化を導くことを主な目的としています。
- 目指すのは、Swift でのネットワーキングをあらゆる場所で優れたものにすることです。すなわち、デフォルトで高水準かつ安全、モジュール化され相互運用でき、クロスプラットフォームで、観測可能(observable)であることを掲げています。
- ワークグループのメンバーシップと会議は参加を希望する人に開かれており、コントリビューターを歓迎しています。
何が変わるのか
Networking workgroup の発足
新設される Networking workgroup は、Swift エコシステムにおけるネットワーキングのライブラリ・プロトコル・API の進化を導くことを主な目的としています。Swift workgroup はプロジェクトから正式に認められたコミュニティ主導の取り組みで、Swift の重要な領域を前進させる役割を担います。Networking workgroup は、過去 1 年で加わった Android workgroup・Windows workgroup・Build and Packaging workgroup に続くワークグループです。
ワークグループは Networking のビジョンで示された長期的な方向性を追求し、次の作業に注力するとされています。
- 統一されたネットワーキングスタックを、一貫した階層型アーキテクチャとして定義する。土台となる共有 I/O プリミティブから、共通のプロトコル実装を経て、最上位の使いやすいクライアント・サーバー API までを含む。
- ライブラリどうしが特定の実装に結合せずに相互運用できるよう、IP アドレス・ホスト名・ポート・HTTP リクエストやレスポンスといった currency type を定義する。
- structured concurrency の上に構築された、モダンで統一された HTTP クライアント・サーバー API を設計・先導し、HTTP API を進化させる。
- 共有されるプロトコル実装(TLS・HTTP/1.1・HTTP/2・HTTP/3・QUIC・WebSocket)の進化を導き、改善がライブラリごとに重複するのではなくエコシステム全体に行き渡るようにする。
背景
ネットワーキングは Swift 開発者にとって最も一般的な入口の1つであり、エコシステムはこの数年で大きく成熟してきました。SwiftNIO・AsyncHTTPClient・swift-http-types といった基盤ライブラリや、URLSession や Network.framework といったプラットフォーム標準のスタックが、アプリ・サーバーをはじめとする幅広い場面のネットワーキングを支えています。Networking workgroup は、こうした既存の取り組みの上に立って活動します。
参加・利用者への影響
この記事は、Swift でネットワーキングを行う開発者や、ネットワーキングの将来の方向性に関わりたい人に向けたものです。ワークグループの発足により、統一されたネットワーキングスタックや currency type、モダンな HTTP API、共有プロトコル実装といったテーマをコミュニティで議論・推進していく窓口ができました。
記事では、ワークグループに関わる方法として次の導線が案内されています。
- フォーラムでこの発表について議論し、Networking カテゴリでアイデアを共有する
- Networking workgroup のチャーター(charter)を読む
- 隔週で開催される会議に参加する。定例の開催時刻は調整中で、最初の公開会議に先立ってフォーラムで告知される予定。メンバーシップと会議は参加を希望する人に開かれており、招待を受け取るにはフォーラムで @networking-workgroup にメッセージを送る