Apple、イベント駆動型ネットワークアプリ向けフレームワーク「SwiftNIO 1.1」を公開

 米AppleのSwiftチームは3月5日、非同期のイベント駆動型ネットワークフレームワークの最新版「SwiftNIO 1.1」を公開した。Swift向けのNettyを目指す。

 SwiftNIOは、Swiftを使ってネットワークアプリケーションを作成するためのフレームワーク。ノンブロッキング、クロスプラットフォームなどを特徴とし、高性能なプロトコルサーバーとクラアントを高速に開発できる。3月1日、2日に東京で開催された「try! Swift Conference」でバージョン1.0が発表された。

 低レベルのネットワーキングフレームワークで、1つの接続ごとに1つのスレッドで処理を行う「thread-per-connectionモデル」を使った同時実行が非効率な場合に適しているという。Java向けのネットワークアプリフレームワーク「Netty」のようなものだが、Swift向けに書かれている、としている。

 EventLoopGroup、EventLoop、Channel、ChannelHandlerの4種類のプロトコルを備え、ジェネリッククラスとしてEventLoopPromiseとEventLoopFutureを持つ。イベントループは、アプリケーションのライフサイクル全体で動き、イベントを待機してコールバックを送る。イベントループのグループ化により、イベントループの作業を配信できるという。

 SwiftNIO 1.1ではチャネルを改善し、何らかのI/Oに関連せずに登録したチャネルを利用できるようになった。

 SwiftNIO 1.1はUbuntu 14.04以上、macOS 10.12以上をサポート、プロジェクトのWebサイトより入手できる。ライセンスはApache License 2.0。

SwiftNIO
https://github.com/apple/swift-nio