OSS探訪GitHubでログイン

RFC 6455 WebSocketをSwiftで接続し、text/binary・TLS/WSS・圧縮eventを扱う

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,641
主要言語
Swift
ライセンス
Apache-2.0
リポジトリ最終更新
2024/05/16
ページ内ナビ

概要

StarscreamはSwift向けWebSocket client libraryです。RFC 6455に準拠し、backgroundでのnonblocking処理、TLS/WSS、RFC 7692 compression、text/binary/ping/pongなどのeventをdelegateまたはclosureから扱えます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

WebSocketEventで接続・message・errorを一つのevent streamとして扱う

WebSocketをURLRequestから作成してconnectし、delegateのdidReceiveまたはonEvent closureでconnected、disconnected、text、binary、ping/pong、errorなどを処理できます。socket instanceは接続中に保持する必要があります。

出典:[2]

TLS/WSS・custom header・compression・callback queueを設定する

custom headerやSec-WebSocket-Protocol、timeout、certificate pinner、RFC 7692 compression handlerを設定できます。network processingはbackgroundで行われ、delegate callback queueは用途に合わせて変更できます。

出典:[2]

向いている用途

chat・realtime dashboardなど双方向通信を持つiOS applicationに向く

HTTP request/responseだけでなくserverから継続的にeventを受け取り、text/binary frameを双方向で送受信するclient機能が必要な場合に適します。

出典:[2]

導入前の確認

latest release 4.0.8は2024年で、current Swift/Xcodeとの互換性確認が必要

GitHub latest releaseは2024年3月の4.0.8で、Package.swiftはSwift tools 5.3を使用しています。repositoryの最終pushも2024年5月のため、現在のSwift/Xcode、concurrency、TLS設定でbuildとconnection behaviorを確認してから採用してください。

出典:[4][3][1]

参考にした公式資料

  1. [1]daltoniam/Starscream — GitHub repository(2026-10-06)
  2. [2]Starscream 4.0.8 — README(2026-10-06)
  3. [3]Starscream 4.0.8 — Package.swift(2026-10-06)
  4. [4]Starscream 4.0.8 release(2026-10-06)
  5. [5]Starscream Apache-2.0 license(2026-10-06)
編集部からの補足

chatやrealtime dashboardなど双方向通信が必要なiOS appに向きます。latest releaseと最終pushが2024年のため、現行Swift/Xcode・concurrency・TLS環境で接続試験を行ってから採用してください。

3ステップで試す

  1. 1

    Starscream 4.0.8をSwiftPMで追加する

    latest GitHub releaseを固定します。現行Swift/Xcodeとの互換性はCIで確認してください。

    .package(url: "https://github.com/daltoniam/Starscream.git", exact: "4.0.8")
  2. 2

    WebSocketを作成して接続する

    socketを保持した状態でWSS endpointへ接続します。

    import Starscream var request = URLRequest(url: URL(string: "wss://example.com/socket")!) request.timeoutInterval = 5 let socket = WebSocket(request: request) socket.connect()
  3. 3

    onEventでtext/binary eventを受け取る

    WebSocketEventからtext/binaryなど必要なeventを処理します。

    socket.onEvent = { event in switch event { case .text(let value): print(value) case .binary(let data): print(data.count) default: break } }
公式READMEで確認

成長

成長の推移 · 直近30日

8,641 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
26

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • starscream
  • swift
  • websocket-client
  • osx
  • websocket
  • websockets
  • protocol
Stars
8,641
Forks
1,257
Watchers
132
Open Issues
146
Contributors
100
所有者種別
User
主要言語
Swift
ライセンス
Apache-2.0
リポジトリ最終更新
2024/05/16

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?