2012-11-23 54 views
1

有誰知道在ARM機器中用於嵌入式Linux的良好非GPL C/C++ XMPP客戶端庫嗎?非GPL用於嵌入式Linux的C/C++ XMPP客戶端庫

我已經簽出txmpp,但最近的更新似乎是2年前。 qxmpp似乎需要Qt,我不確定是否在嵌入式Linux中受支持。另外,AFAIK Qt用於GUI,所以我不確定圖書館爲什麼需要它。 我也檢查了gloox,但它是GPL,似乎也超過了一歲。

謝謝。

+0

這個txmpp庫是否適合你?即它是否工作,是否滿足您項目的功能要求?如果是這樣,那麼上次更新時它有什麼關係?甚至數十年未更新的代碼仍然有用且可用。 –

+0

我不確定,沒有看具體細節,但由於熟悉性,輕量級,TLS支持以及通常的XMPP客戶端功能,我的要求是對嵌入式Linux,C/C++的支持。我擔心的是,過去幾年的標準和特徵不會被整合到圖書館中,因爲它沒有積極發展。 – user1118764

回答

1

非GPL C/C嵌入式Linux

libstrophe ++ XMPP客戶端庫 - 在MIT/GPLv3的雙重許可。不過,我不確定它是否會在ARM上編譯,儘管它應該相當便攜。

所以我不知道爲什麼圖書館需要它。

因爲Qt提供了XML解析器和信號/插槽框架。 XMPP需要XML解析器,信號/插槽框架使您的生活更輕鬆。如果您嘗試使用OOP方式的所有擴展實現整個XMPP,則需要類似於Qt的東西。如果您只需發送一兩個命令,那麼裸露的骨骼解決方案就可以完成。

libstrophe是光禿禿的骨頭。你不會得到幾十個代表不同xmpp概念的包裝(以及擴展的軍團),但你可以發送你需要的命令。當然,您必須閱讀XMPP規範。

建議:當談到C++時,沒有太多好的xmpp庫可用。 我認爲它發生的原因如下(個人意見):

  1. many protocol extensions
  2. 這是很容易,同時使XMPP庫分心。 Xmpp包含了相當多的可能的錯誤,而面向OOP的程序員將非常想要爲所有事情創建一個類,這在這種情況下效果並不好,並且需要類似Qt 4的東西才能正常工作。
  3. XMPP需要XML解析器。

因此,它可能是有道理的嘗試python - 如果您的嵌入式平臺可以處理它。對於python,有xmpppy。儘管我非常不喜歡python,但我認爲使用xmpppy在Python中使用XMPP比使用libstrophe在C++中更容易。這是因爲xmpp需要大量的鍵值對列表,python使用字典以更「自然」的方式表示這樣的構造。

+0

謝謝。我會給libstrophe一槍。還發現iksemel,這似乎也很有趣。 noob問題,但是XML分析器到底做了什麼?我知道XMPP在其節中使用了XML。 XML解析器是否接受用戶輸入,例如ASCII文本中的聊天消息,並生成XMPP XML代碼? – user1118764

+0

@ user1118764:XML解析器讀取XML代碼並將其轉換爲其他表單程序可以理解的形式(例如對象樹)。您需要XML解析器,因爲XML讀起來不容易,而且您絕對不想從頭開始編寫解析器。在libstrophe的情況下,libstrophe使用XML解析器將XML輸入流轉換爲「stanza_t」結構,然後將其傳遞給回調函數。 – SigTerm

+0

謝謝,這是有道理的 – user1118764

1

我有同樣的問題,所以我滾自己的。在BOOST許可下發布; http://deusexmachinae.se/dxmpp

它只支持核心功能+正確的認證(包括TLS和SCRAM-SHA-1)。