Delphi & C++ Builder WebSocket ライブラリ — 比較ガイド
2026 年時点で Delphi および C++ Builder 開発者が利用可能な WebSocket ライブラリ (sgcWebSockets、Indy、ICS、TMS FNC WebSocket、mORMot 2、単機能 MQTT ライブラリ) について、一次情報源を引用した中立的な比較調査です。すべての機能記述は各プロジェクトの公式ドキュメントへリンクしています。
2026 年時点で Delphi および C++ Builder 開発者が利用可能な WebSocket ライブラリ (sgcWebSockets、Indy、ICS、TMS FNC WebSocket、mORMot 2、単機能 MQTT ライブラリ) について、一次情報源を引用した中立的な比較調査です。すべての機能記述は各プロジェクトの公式ドキュメントへリンクしています。
各ライブラリの 1 段落の要約と、公式ドキュメントへのリンクです。詳細な比較は下のマトリクスにあります。
eSeGeCe · 商用
WebSocket クライアントおよびサーバー、HTTP/2、MQTT、AMQP、STOMP、WAMP、SSE、WebRTC、IoT ブローカー、AI/LLM クライアント、30 以上のサードパーティ API 統合を網羅する Delphi / C++ Builder 用の商用コンポーネントスイートです。Delphi 7 から Delphi 13、C++ Builder 2007 から 13 までをサポートします。
Indy Working Group / Remy Lebeau · BSD / MPL (オープンソース)
近年の RAD Studio インストールにすべて同梱される、オープンソースの TCP / UDP / 生ソケットライブラリです。120 以上の高レベルプロトコルクライアントとサーバー (HTTP、SMTP、POP3、IMAP、FTP、NNTP、IRC ほか) を提供しますが、ネイティブの WebSocket クライアントやサーバーは含まれません。通常は TIdHTTP / TIdHTTPServer 上にサードパーティ製 WebSocket アドオンを追加して利用します。
François Piette / Magenta Systems Ltd · 無償、ソース公開
François Piette によるオープンソースの Delphi / C++ Builder ネットワークライブラリです。WebSocket サポートは ICS V9.0 で TSslWebSocketCli (OverbyteIcsWebSocketCli 内) と、既存の ICS Web サーバー上のサーバークラス THttpWSSrvConn として追加されました。
TMS Software · 商用
TMS Software は関連する 2 つの製品を提供しています。TMS Sparkle はクロスプラットフォームの HTTP クライアント / サーバーフレームワークです (TMS XData や TMS RemoteDB の内部でも使用されています)。TMS FNC WebSocket は RFC 6455 を実装する別個の VCL + FireMonkey 用 WebSocket クライアント / サーバーペアです。
Arnaud Bouchez / Synopse · MPL / GPL / LGPL (オープンソース)
非同期 HTTP / WebSocket サーバー、REST/JSON、OpenAPI / Swagger、LDAP、DNS、ACME、暗号プリミティブを備えた、オープンソースの Object Pascal 用 SOA / ORM / MVC フレームワークです。Delphi 版のサーバーユニットは Windows のみが対象で、FPC (Free Pascal) は同じサーバーコードを Linux、BSD、macOS 向けにビルドできます。モバイルクライアントはすべてのプラットフォームでサポートされます。
複数のコミュニティ著者 · 多様 (通常は MIT / BSD / Apache)
Delphi 向けの単機能 MQTT クライアントが多数 GitHub に公開されています。通常は MQTT 3.1.1 のクライアント側のみを対象とし、MQTT 5.0 サーバー、AMQP、STOMP、WAMP は含まれず、個人作者によって保守されています。
チェック () はプロジェクトがネイティブサポートをドキュメント化していることを示します。ダッシュ (—) はネイティブでは提供されていないことを示します。チルダ (~) は部分的 / アドオン経由 / 明示的にドキュメント化されていないことを示します。検証可能だった内容は「ソース」セクションをご参照ください。
| 機能 | sgcWebSockets | Indy (Internet Direct) | ICS (Internet Component Suite) | TMS FNC WebSocket / TMS Sparkle | mORMot 2 | 単機能の MQTT 専用ライブラリ |
|---|---|---|---|---|---|---|
| WebSocket クライアント RFC 6455 クライアント | ~ | — | ||||
| WebSocket サーバー RFC 6455 サーバー | ~ | — | ||||
| TLS 1.3 提供されるトランスポートが TLS 1.3 をサポート | ~ | ~ | ||||
| HTTP/2 クライアント ネイティブ HTTP/2 クライアント (RFC 7540 / 9113) | — | — | ~ | — | — | |
| MQTT MQTT 3.1.1 / 5.0 クライアントを内蔵 | — | ~ | ~ | — | ||
| AMQP AMQP 0.9.1 / 1.0 クライアントを内蔵 | — | — | — | — | — | |
| STOMP STOMP 1.0 / 1.2 クライアントを内蔵 | — | — | — | — | — | |
| WAMP WAMP v1 / v2 クライアントを内蔵 | — | — | — | — | — | |
| サーバープッシュ / ストリーミング 長時間維持されるプッシュまたはストリーミング接続 | ~ | ~ | ~ | |||
| 自動再接続 クライアントに自動再接続 / ウォッチドッグを内蔵 | — | ~ | ~ | ~ | ~ | |
| per-message-deflate (RFC 7692) WebSocket 圧縮拡張 | — | ~ | ~ | ~ | — | |
| マルチプラットフォーム Win / macOS / Linux / iOS / Android | ~ | ~ | ||||
| 商用利用可 クローズドソースの商用利用をライセンスが許可 | ||||||
| ソースコード利用可能 開発者がライブラリのソースを参照可能 | ||||||
| 活発な保守 直近 12–18 か月にリリースまたはタグ付き活動あり | ~ | ~ | ||||
| ライセンスモデル ライセンス種別 | 商用 | BSD / MPL (オープンソース) | 無償、ソース公開 | 商用 | MPL / GPL / LGPL (オープンソース) | 多様 (通常は MIT / BSD / Apache) |
ここに挙げたライブラリにはいずれも実需要があります。最適な選択は、必要なプロトコルの広さ、ライセンスの好み、既存の依存関係によって決まります。
WebSocket に加えてメッセージングプロトコル (MQTT、AMQP、STOMP、WAMP)、HTTP/2、AI/LLM クライアントを単一の商用ライセンスで揃った 1 つのコンポーネントセットから利用したい場合、C++ Builder を含む幅広い Delphi バージョン (7–13) に対応したい場合、macOS / iOS / Android / Linux 向けの FireMonkey ターゲットが必要な場合に sgcWebSockets を選んでください。
WebSocket そのものが要件でない場合 (たとえば HTTP、SMTP、POP3、IMAP、FTP、NNTP の成熟したサポートを備えた寛容ライセンスの TCP / UDP ツールキットが必要な場合、または既存の TIdHTTPServer を独自の WebSocket アップグレードハンドラーで拡張したい場合) に Indy を選んでください。Indy は RAD Studio に同梱されているため、依存関係を増やしません。
WebSocket クライアントおよびサーバー、OpenSSL 3.x 上のモダンな TLS 1.3 (V9.6 ではポスト量子暗号を含む) を備えたオープンソースの Delphi ネットワークスイートが必要で、既存の ICS Web サーバーを通じてルートを配線することに抵抗がない場合に ICS を選んでください。ICS は活発に保守されている OpenSSL バージョンを追従する長期リリースです。
VCL と FireMonkey で必要なネットワークプロトコルが WebSocket のみの場合、すでに他の TMS FNC コンポーネントをライセンスしている (ビジュアル / ノンビジュアルの API スタイルが一貫します) 場合、または FNC のクロスフレームワークの利点 (VCL と FMX で単一コードベース) を特に求める場合に TMS FNC WebSocket を選んでください。HTTP / HTTPS サービスホスティングには TMS Sparkle が TMS XData と組み合わさります。
MPL / GPL / LGPL 下で Object Pascal 向けのオープンソースフルスタックフレームワーク (ORM、SOA、REST、WebSocket、OpenAPI) が欲しい場合、サーバーが FPC 上の Linux で稼働する場合、またはデータベース、ビジネスロジック、WebSocket トランスポートを単一フレームワークで網羅したい場合に mORMot 2 を選んでください。
必要なプロトコルが MQTT 1 つだけの場合、寛容ライセンスのコードのみに依存させたい場合、ワイヤープロトコル実装を 1 行残らず読みたい場合に、単機能の MQTT 専用ライブラリを選んでください。採用前に対象プロジェクトのコミット履歴を精査してください。作者によって活動状況には大きな差があります。
上記のいずれかのライブラリから移行する場合の API と機能の相違点に関する短いメモです。対立的ではなく、実務的な対応関係を示します。
Indy は生の HTTP / TCP 配管を提供し、sgcWebSockets は WebSocket フレーミング、ping/pong、自動再接続、サブプロトコル (MQTT/AMQP/STOMP/WAMP)、per-message-deflate を組み込みで提供します。現在 Indy ベースの HTTP サーバーをお持ちの場合、sgcWebSockets は Indy へのプラグインではなく独立した TsgcWebSocketHTTPServer を提供します。既存の HTTP ルートを sgc サーバー上に再実装するか、別ポートで両者を併用する必要があります。
両ライブラリとも WebSocket クライアントと WebSocket-over-HTTP サーバーを公開しています。前述のメッセージングプロトコル (MQTT、AMQP、STOMP、WAMP)、AI/LLM および取引所 API クライアントは sgcWebSockets 固有です。現在 WebSocket ルートを備えた ICS Web サーバーを運用している場合、sgcWebSockets は TsgcWebSocketHTTPServer をドロップインの HTTP + WS ホストとして提供しますが、ルート登録 API は異なります。
sgcWebSockets と TMS FNC WebSocket はいずれも RFC 6455 のクライアントとサーバーを実装します。コンポーネントクラスを差し替え、イベントを再配線することで移行できます。その上に構築されたプロトコルレイヤー (MQTT、AMQP、STOMP、WAMP)、HTTP/2 クライアント / サーバー、30 以上のサードパーティ API 統合は sgcWebSockets 固有です。TMS MQTT を別途利用している場合、sgcWebSockets は同じスイートに MQTT を同梱します。
mORMot 2 は WebSocket を SOA レイヤー内にラップしますが、sgcWebSockets はあらゆる Delphi プロジェクトに組み込める、スタンドアロンの WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP コンポーネントを提供します。アプリケーションが mORMot 2 の ORM や SOA 機能を利用している場合、sgcWebSockets への移行には SOA レイヤーの再実装が必要です。WebSocket トランスポートのみに mORMot 2 を使っていた場合は、sgcWebSockets はより一対一に近い置き換えになります。
現在単機能の MQTT 専用ライブラリを使用していて、WebSocket、HTTP/2、AMQP、AI/LLM API クライアントを追加したい場合、sgcWebSockets はそれらをすべて単一のスイートに統合し、単一ライセンスと単一の更新チャネルで提供します。
上記マトリクスの各セルは、これらの公式ドキュメントページ、リポジトリ、リリースノートのいずれかに遡れます。すべての URL は執筆時点で HEAD チェック済みです。