{"id":31710044,"url":"https://github.com/emqx/qmqtt","last_synced_at":"2025-10-09T00:10:29.687Z","repository":{"id":7224663,"uuid":"8532397","full_name":"emqx/qmqtt","owner":"emqx","description":"MQTT client for Qt","archived":false,"fork":false,"pushed_at":"2023-08-29T17:27:26.000Z","size":1619,"stargazers_count":734,"open_issues_count":3,"forks_count":344,"subscribers_count":62,"default_branch":"master","last_synced_at":"2025-09-29T22:58:35.339Z","etag":null,"topics":["emqx","mqtt","mqtt-client","qmqtt","qt"],"latest_commit_sha":null,"homepage":"https://www.emqx.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emqx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-03T05:49:51.000Z","updated_at":"2025-09-13T07:06:01.000Z","dependencies_parsed_at":"2022-07-14T07:20:40.965Z","dependency_job_id":null,"html_url":"https://github.com/emqx/qmqtt","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/emqx/qmqtt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emqx%2Fqmqtt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emqx%2Fqmqtt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emqx%2Fqmqtt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emqx%2Fqmqtt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emqx","download_url":"https://codeload.github.com/emqx/qmqtt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emqx%2Fqmqtt/sbom","scorecard":{"id":376349,"data":{"date":"2025-08-11","repo":{"name":"github.com/emqx/qmqtt","commit":"39c3e8af25407e25590b511c1e9387deabe89bac"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":5,"reason":"Found 10/19 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 23 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T14:20:18.069Z","repository_id":7224663,"created_at":"2025-08-18T14:20:18.069Z","updated_at":"2025-08-18T14:20:18.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000745,"owners_count":26082879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emqx","mqtt","mqtt-client","qmqtt","qt"],"created_at":"2025-10-09T00:09:40.908Z","updated_at":"2025-10-09T00:10:29.682Z","avatar_url":"https://github.com/emqx.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"QMQTT\n=====\n\nmqtt client for Qt 5 in maintenance status\n\n**Please compile the library with Qt \u003e= 5.3 version. On Windows you need to specify `CONFIG += NO_UNIT_TESTS`, since gtest is not supported.**\n\nSSL is enabled by default, if the version of OpenSSL \u003c 1.0.2, SSL may not be supported.\n\nDisable the SSL in CMakeLists.txt (cmake):\n\n    option( ${PROJECT_NAME}_SSL \"Enable SSL support for MQTT\" OFF )\n\nDisable the SSL with src/mqtt/qmqtt.pro (qmake):\n\n    CONFIG += QMQTT_NO_SSL\n\nTo add websocket support, compile the library with Qt \u003e= 5.7, and specify 'CONFIG += QMQTT_WEBSOCKETS'.\nThis also works when compiling qmqtt for WebAssembly.\n\nUsage\n=====\n\nIn your QMake project, add:\n\n    QT += qmqtt\n\nConnect using TCP:\n\n    #include \"qmqtt.h\"\n\n    QMQTT::Client *client = new QMQTT::Client(QHostAddress::LocalHost, 1883);\n    client-\u003esetClientId(\"clientId\");\n    client-\u003esetUsername(\"user\");\n    client-\u003esetPassword(\"password\");\n    client-\u003econnectToHost();\n\nConnect using SSL:\n\n    QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();\n    // Add custom SSL options here (for example extra certificates)\n    QMQTT::Client *client = new QMQTT::Client(\"example.com\", 8883, sslConfig);\n    client-\u003esetClientId(\"clientId\");\n    client-\u003esetUsername(\"user\");\n    client-\u003esetPassword(\"password\");\n    // Optionally, set ssl errors you want to ignore. Be careful, because this may weaken security.\n    // See QSslSocket::ignoreSslErrors(const QList\u003cQSslError\u003e \u0026) for more information.\n    client-\u003eignoreSslErrors(\u003clist of expected ssl errors\u003e)\n    client-\u003econnectToHost();\n    // Here's another option to suppress SSL errors (again, be careful)\n    QObject::connect(client, \u0026QMQTT::Client::sslErrors, [\u0026](const QList\u003cQSslError\u003e \u0026errors) {\n        // Investigate the errors here, if you find no serious problems, call ignoreSslErrors()\n        // to continue connecting.\n        client-\u003eignoreSslErrors();\n    });\n\nConnect using WebSockets:\n\n    QMQTT::Client *client = new QMQTT::Client(\"ws://www.example.com/mqtt\", \"\u003corigin\u003e\", QWebSocketProtocol::VersionLatest);\n    client-\u003esetClientId(\"clientId\");\n    client-\u003esetUsername(\"user\");\n    client-\u003esetPassword(\"password\");\n    client-\u003econnectToHost();\n\nSlots\n=====\n\n    void setHost(const QHostAddress\u0026 host);\n    void setPort(const quint16 port);\n    void setClientId(const QString\u0026 clientId);\n    void setUsername(const QString\u0026 username);\n    void setPassword(const QString\u0026 password);\n    void setKeepAlive(const int keepAlive);\n    void setCleanSession(const bool cleansess);\n    void setAutoReconnect(const bool value);\n    void setAutoReconnectInterval(const int autoReconnectInterval);\n    void setWillTopic(const QString\u0026 willTopic);\n    void setWillQos(const quint8 willQos);\n    void setWillRetain(const bool willRetain);\n    void setWillMessage(const QString\u0026 willMessage);\n\n    void connectToHost();\n    void disconnectFromHost();\n\n    quint16 subscribe(const QString\u0026 topic, const quint8 qos);\n    void unsubscribe(const QString\u0026 topic);\n\n    quint16 publish(const Message\u0026 message);\n\nSignals\n=======\n\n    void connected();\n    void disconnected();\n    void error(const QMQTT::ClientError error);\n\n    void subscribed(const QString\u0026 topic, const quint8 qos);\n    void unsubscribed(const QString\u0026 topic);\n    void published(const quint16 msgid, const quint8 qos);\n    void pingresp();\n    void received(const QMQTT::Message\u0026 message);\n\nQt 6 support\n============\n\nThis library has been developed and tested against Qt 5. Active work on it has stopped since Qt released its own _mqtt_ module several years ago. There are currently no plans for further extensions except for smaller rectifications and bug fixing. At your own risk you may use it in Qt6 projects using cmake.\n\n\nLicense\n=======\n\nNew BSD License\n\nContributors\n=============\n\n[@avsdev-cw](https://github.com/avsdev-cw),\n[@alex-spataru](https://github.com/alex-spataru),\nBenjamin Schmitz,\n[@bf-bryants](https://github.com/bf-bryants),\n[@bog-dan-ro](https://github.com/bog-dan-ro),\n[@chsterz](https://github.com/chsterz),\n[@cncap](https://github.com/cncap),\n[@ejvr](https://github.com/ejvr),\n[@ehntoo](https://github.com/ehntoo),\nErik Botö,\nGuillaume Bour,\n[@halfgaar](https://github.com/halfgaar),\n[@hxcan](https://github.com/hxcan),\n[@jpnurmi](https://github.com/jpnurmi),\nKai Dohmen,\n[@Kampfgnom](https://github.com/Kampfgnom),\n[@keytee](https://github.com/keytee),\n[@kollix](https://github.com/kollix),\n[@KonstantinRitt](https://github.com/KonstantinRitt),\n[@maggu2810](https://github.com/maggu2810),\n[@mwallnoefer](https://github.com/mwallnoefer),\n[@NicoWallmeier](https://github.com/NicoWallmeier),\nNiklas Wulf,\nNiraj Desai,\n[@Psy-Kai](https://github.com/Psy-Kai),\n[@rafaeldelucena](https://github.com/rafaeldelucena),\n[@rokm](https://github.com/rokm),\n[@RoachLin](https://github.com/RoachLin),\n[@sergey-kuzminov](https://github.com/sergey-kuzminov),\nsgaoemq,\n[@Vortex375](https://github.com/Vortex375),\nybq\n\nAuthors\n=======\n\n[@emqplus](https://github.com/emqplus) Feng Lee \u003cfeng@emqx.io\u003e\n\n[@wguynes](https://github.com/wguynes) William Guynes \u003cwguynes@gmail.com\u003e\n\n[@wuming123057](https://github.com/wuming123057) Xuan \u003chuacai123057@163.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femqx%2Fqmqtt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femqx%2Fqmqtt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femqx%2Fqmqtt/lists"}