2012-11-23 55 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)。