Клиентская библиотека не GPL C/C++ XMPP для встроенного Linux
Кто-нибудь знает о хорошей не-GPL C/C++ XMPP клиентской библиотеке, которая работает для встроенного Linux на компьютерах ARM?
Я проверил txmpp, но последнее обновление, кажется, 2 года назад. qxmpp, похоже, требует Qt, который, я не уверен, поддерживается во встроенном Linux. Кроме того, AFAIK Qt предназначен для графического интерфейса, поэтому я не уверен, почему библиотека требует этого. Я также проверил глокс, но это GPL и, кажется, тоже старше года.
Благодарю.
2 ответа
Клиентская библиотека не GPL C/C++ XMPP для встроенного Linux
libstrophe - двойная лицензия под Mit/GPLv3. Тем не менее, я не уверен, что он будет компилироваться на ARM, хотя он должен быть достаточно переносимым.
поэтому я не уверен, почему библиотека требует этого.
Потому что Qt предоставляет парсер XML и каркас сигнала / слота. Для XMPP требуется синтаксический анализатор XML, а структура сигналов / слотов делает вашу жизнь проще. Если вы попытаетесь реализовать весь XMPP со всеми расширениями в режиме ООП, вам понадобится нечто похожее на Qt. Если вам просто нужно отправить одну или две команды, тогда подойдет решение "голыми руками".
либстрофа голая. Вы не получите десятки оболочек, представляющих различные концепции xmpp (и легион расширений), но вы сможете отправлять команды, которые вам нужны / нужны. Конечно, вам придется читать спецификации XMPP.
Совет: когда дело доходит до C++, хороших библиотек xmpp не так много. Я думаю, что это происходит по следующим причинам (личное мнение):
- Слишком много расширений протокола
- Легко отвлечься при создании библиотек xmpp. Xmpp содержит довольно большое количество возможных ошибок, и программист с ООП будет крайне искушен сделать класс для всего, что не работает в этом сценарии и требует что-то вроде Qt 4 для правильной работы.
- XMPP требует синтаксического анализатора XML.
В результате, возможно, имеет смысл попробовать python - ЕСЛИ ваша встроенная платформа может с этим справиться. Для python есть xmpppy. Хотя я сильно не люблю python, я думаю, что будет проще работать с XMPP в python с использованием xmpppy, чем в C++ с использованием libstrophe. Это связано с тем, что для xmpp требуется множество списков пар ключ-значение, а python представляет такие конструкции более "естественным" образом, используя словари.
У меня была такая же проблема, поэтому я покатил свою. Выпущено по лицензии BOOST; http://deusexmachinae.se/dxmpp
Он поддерживает только основные функции + правильную аутентификацию (включая TLS и SCRAM-SHA-1).