OSS探訪

同期/非同期C APIからMQTT 5.0/3.1.1 brokerへTCP・TLS・WebSocket等で接続するcross-platform client library

スコアの見方

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

Stars
2,373
主要言語
C
ライセンス
EPL-2.0 OR BSD-3-Clause
リポジトリ最終更新
2026/09/09
ページ内ナビ

概要

Eclipse Paho MQTT CはC applicationからMQTT brokerへ接続するclient libraryです。classic synchronous MQTTClientとasynchronous MQTTAsyncを提供し、MQTT 5.0/3.1.1、TCP、SSL/TLS、WebSockets、Unix-domain socket等を用途に応じて選べます。

特徴と向いている用途

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

主な特徴

同期APIと非同期APIを用途別に選ぶ

paho-mqtt3c系はclassic synchronous API、paho-mqtt3a系はasynchronous APIを提供し、threading modelやapplication architectureに合わせて選択できます。

出典:[1]

TCP・TLS・WebSocket・Unix socketでbrokerへ接続する

URI schemeとbuild optionによりplain TCP、SSL/TLS、secure/insecure WebSockets、Unix-domain socketを利用できます。

出典:[1]

CMake targetでshared/static・TLS有無を明示してlinkする

CMake packageはasync/sync、TLS有無、shared/staticに対応するexport targetを提供するため、applicationの依存関係を明示できます。

出典:[1][2]

向いている用途

Windows・Linux・macOSのC applicationへMQTT connectivityを組み込みたい場合に向く

native C applicationやgateway、device-side softwareでMQTT transportを既存event loopやthread modelへ組み込みたい場合に適します。

出典:[1]

導入前の確認

TLS版はbuild optionとconnect optionの両方を設定する

secure transportを使うにはPAHO_WITH_SSL=TRUEでlibraryをbuildし、connection時にもSSL optionsを指定する必要があります。

出典:[1]

test suiteはMQTT brokerを必要とする

CMake testはdefaultでlocalhost brokerを参照します。library compileの確認とbroker integration testを分け、CIではtest brokerの起動・isolationを明示します。

出典:[1]

1.3.16ではTCP_NODELAYがdefault有効になった

1.3.16はconnect latency改善とTCP_NODELAY default有効化を含み、minimum CMake versionも3.12へ更新しています。latency-sensitive systemではversion差によるnetwork behaviorを確認します。

出典:[3][2]

参考にした公式資料

  1. [1]Paho MQTT C 1.3.16 README(2026-10-04)
  2. [2]Paho MQTT C 1.3.16 CMake configuration(2026-10-04)
  3. [3]Paho MQTT C 1.3.16 release(2026-10-04)
  4. [4]Paho declared project licenses(2026-10-04)
編集部からの補足

libraryは同期/非同期とTLS有無で複数variantに分かれます。applicationのlink targetとtransport要件を先に決め、TLSを使う場合はPAHO_WITH_SSL=TRUEとconnect時のSSL optionsを両方設定してください。1.3.16ではTCP_NODELAYが既定有効になりconnect latency改善も入っています。

3ステップで試す

  1. 1

    Paho MQTT C 1.3.16 sourceを取得する

    stable v1.3.16へ固定してsourceを取得します。

    git clone --depth 1 --branch v1.3.16 https://github.com/eclipse-paho/paho.mqtt.c.git paho-mqtt-c-1.3.16
  2. 2

    TLS・testなしの最小CMake buildをconfigureする

    外部brokerやOpenSSLを要求せず、plain MQTT client libraryのcompile確認に絞ります。

    cmake -S paho-mqtt-c-1.3.16 -B paho-mqtt-c-1.3.16/build -DPAHO_WITH_SSL=OFF -DPAHO_ENABLE_TESTING=OFF -DPAHO_BUILD_SAMPLES=OFF
  3. 3

    同期client library targetをbuildする

    classic synchronous APIのshared library targetをbuildし、C compiler/CMake環境を検証します。

    cmake --build paho-mqtt-c-1.3.16/build --target paho-mqtt3c
公式READMEで確認

成長

成長の推移 · 直近30日

2,373 Stars

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

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
58

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

Built with

カテゴリとタグ

GitHubデータ

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

GitHub Topics

  • eclipseiot
  • mqtt
  • iot
  • internet-of-things
  • eclipse-paho
Stars
2,373
Forks
1,192
Watchers
111
Open Issues
169
Contributors
96
所有者種別
Organization
主要言語
C
リポジトリ最終更新
2026/09/09

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

情報の誤りを報告

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

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