用于嵌入式Linux的非GPL C / C ++ XMPP客户端库

时间:2012-11-23 03:02:39

标签: c++ c xmpp

有没有人知道适用于ARM机器中嵌入式Linux的非GPL C / C ++ XMPP客户端库?

我已经检查了txmpp,但最后一次更新似乎是2年前。 qxmpp似乎需要Qt,我不确定嵌入式Linux是否支持。此外,AFAIK Qt用于GUI,所以我不确定库为什么需要它。 我也检查了gloox,但它是GPL,似乎也超过一年了。

感谢。

2 个答案:

答案 0 :(得分:1)

  

用于嵌入式Linux的非GPL C / C ++ XMPP客户端库

libstrophe - 在Mit / GPLv3下获得双重许可。但是,我不确定它是否会在ARM上编译,尽管它应该是相当便携的。

  

所以我不确定图书馆为什么需要它。

因为Qt提供XML解析器和信号/插槽框架。 XMPP需要XML解析器,信号/插槽框架使您的生活更轻松。如果你尝试用OOP方式实现所有扩展的整个XMPP,你需要类似于Qt的东西。如果您只需要发送一两个命令,那么裸骨解决方案就可以了。

libstrophe是骨子里的骨头。你不会得到几十个代表不同xmpp概念(和大量扩展)的包装器,但是你将能够发送你需要/想要的命令。当然,您必须阅读XMPP规范。

建议:当谈到C ++时,没有很多好的xmpp库可用。 我认为这是出于以下原因(个人意见):

  1. many protocol extensions
  2. 制作xmpp库时很容易分心。 Xmpp包含相当多的可能错误,而OOP-minded程序员将非常想要为所有内容创建一个类,这在这种情况下效果不佳,并且需要类似Qt 4才能使其正常工作。
  3. XMPP需要XML解析器。
  4. 因此,尝试python可能是有意义的 - 如果您的嵌入式平台可以处理它。对于python,有xmpppy。虽然我非常不喜欢python,但我认为使用xmpppy在python中使用XMPP比在使用libstrophe的C ++中更容易。这是因为xmpp需要大量的键值对列表,而python使用字典以更“自然”的方式表示这样的结构。

答案 1 :(得分:1)

我遇到了同样的问题,所以我自己动手了。根据BOOST许可证发布; http://deusexmachinae.se/dxmpp

它仅支持核心功能+正确的身份验证(包括TLS和SCRAM-SHA-1)。