Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qxmpp-project/qxmpp
Cross-platform C++ XMPP client and server library
https://github.com/qxmpp-project/qxmpp
c-plus-plus cmake qt xmpp xmpp-library
Last synced: 2 days ago
JSON representation
Cross-platform C++ XMPP client and server library
- Host: GitHub
- URL: https://github.com/qxmpp-project/qxmpp
- Owner: qxmpp-project
- Created: 2014-03-27T14:46:37.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2025-01-23T15:42:07.000Z (9 days ago)
- Last Synced: 2025-01-24T07:04:58.804Z (9 days ago)
- Topics: c-plus-plus, cmake, qt, xmpp, xmpp-library
- Language: C++
- Homepage:
- Size: 6.6 MB
- Stars: 415
- Watchers: 35
- Forks: 196
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSES/CC-BY-SA-4.0.txt
- Security: SECURITY.md
- Authors: AUTHORS
Awesome Lists containing this project
README
# QXmpp - Cross-platform C++/Qt XMPP library
QXmpp is a cross-platform C++ XMPP client and server library. It is written
in C++ and uses the Qt framework.QXmpp strives to be as easy to use as possible. The underlying TCP socket, the core XMPP RFCs
(RFC6120 and RFC6121) and the [supported XMPP extensions][xeps] have been nicely encapsulated in
classes.
With QXmpp, it is possible to build XMPP clients complying with the
[XMPP Compliance Suites 2022][xmpp-compliance] for IM and Advanced Mobile.
It comes with full API documentation, automatic tests and examples.QXmpp uses Qt extensively. Thus, users need to have a good knowledge of C++ and Qt basics
(including the concept of signals/slots and Qt's data types).
Qt is the only third party library required to build QXmpp, but libraries such as GStreamer enable
additional features.QXmpp is released under the terms of the GNU Lesser General Public License, version 2.1 or later.
## Building
QXmpp requires **Qt 5.15** or **Qt 6.0 or higher**.
You can build QXmpp with CMake:
```
mkdir build
cd build
cmake ..
cmake --build .
```You can pass the following arguments to CMake:
Option | Default | Description
---|---|---
`BUILD_SHARED` | `ON` | Build as shared library, otherwise static
`BUILD_DOCUMENTATION` | `ON` | Build documentation, requires Doxygen
`BUILD_EXAMPLES` | `ON` | Build examples
`BUILD_TESTS` | `ON` | Build unit tests
`BUILD_INTERNAL_TESTS` | `OFF` | Build unit tests testing private parts of the API
`BUILD_OMEMO` | `OFF` | Build the [OMEMO module][omemo]
`WITH_GSTREAMER` | `OFF` | Enable audio/video over Jingle
`QT_VERSION_MAJOR=5/6` | | to build with a specific Qt major version, prefers Qt 6 if undefinedFor example, to build without unit tests you could do:
```
cmake .. -DBUILD_TESTS=OFF
```## Installing
After building QXmpp, you can install it using the following command:
```
cmake --build . --target install
```## Examples
There are various [examples][examples] in order to quickly start using QXmpp.
### `example_0_connected`
This example connects to the XMPP server and starts receiving presences from the server.
You can see whether the user is online and if the user is in your roster (contact list).### `example_1_echoClient`
This is a very simple bot which echoes the message sent to it.
The example helps to understand how to receive and send messages.## Documentation
There is an API documentation for the [latest stable QXmpp version][qxmpp-documentation] and one
for the [master branch][qxmpp-master-documentation].## Supported Platforms
QXmpp should work on all [platforms supported by Qt][supported-platforms].
## Bugs
If you think you have found a bug in QXmpp, we would like to hear about it.
That way, we can fix it.
Before [reporting a bug][issues], please check if the issue is already known at.## Contributing
If you are interested in contributing to QXmpp, please have a look at our [contribution guidelines][contributing].
[xeps]: https://doc.qxmpp.org/qxmpp-1/xep.html
[contributing]: /CONTRIBUTING.md
[examples]: /examples
[issues]: https://github.com/qxmpp-project/qxmpp/issues
[omemo]: /src/omemo/README.md
[qxmpp-documentation]: https://doc.qxmpp.org
[qxmpp-master-documentation]: https://doc.qxmpp.org/qxmpp-dev/
[supported-platforms]: https://doc.qt.io/qt-5/supported-platforms.html
[xmpp-compliance]: https://xmpp.org/extensions/xep-0459.html