A simple, lightweight C library for writing XMPP clients
C C++ Makefile Other
Clone or download
Pull request Compare This branch is 348 commits ahead, 2 commits behind metajack:master.
Failed to load latest commit information.
docs Most public API points are now documented. Jun 24, 2008
examples examples: use xmpp_iq_new() Jul 6, 2017
jni Android: added make files Aug 22, 2016
rpm rpm: update dependencies Jun 23, 2017
src Don't pass NULL to strcmp() Jul 30, 2018
tests fix strtok_r test on MSW Feb 18, 2018
.gitignore examples: add vcard example Jun 23, 2017
.travis.yml travis-ci: remove check package from dependecies Jul 30, 2018
AUTHORS Files needed by autoreconf and co. Apr 25, 2014
COPYING COPYING not needed line May 9, 2014
ChangeLog ChangeLog: add missed changes Feb 18, 2018
Doxyfile Update Doxyfile Sep 14, 2016
GPL-LICENSE.txt Dual licensed libstrophe under MIT and GPLv3. Jun 15, 2009
LICENSE.txt Dual licensed libstrophe under MIT and GPLv3. Jun 15, 2009
MIT-LICENSE.txt Dual licensed libstrophe under MIT and GPLv3. Jun 15, 2009
Makefile.am autotools: remove -Werror Feb 23, 2018
NEWS Files needed by autoreconf and co. Apr 25, 2014
README README needed by autoconf Apr 26, 2014
README.markdown README: remove mention of the check dependency Sep 15, 2016
TODO Files needed by autoreconf and co. Apr 25, 2014
bootstrap.sh autotools: fixed build with old versions of automake Jan 2, 2015
build-android.sh Add warning about disabled TLS in build-android.sh Sep 14, 2016
configure.ac Release libstrophe-0.9.2 Feb 23, 2018
libstrophe.pc.in Refactored configure.ac, added pkg-config support Oct 8, 2014
strophe.h stanza: small fixes in xmpp_error_new() Feb 18, 2018
strophepp.h Fix spacing in c++ files Sep 27, 2016


libstrophe Build Status

libstrophe is a lightweight XMPP client library written in C. It has minimal dependencies and is configurable for various environments. It runs well on Linux, Unix and Windows based platforms.

Its goals are:

  • usable quickly
  • well documented
  • reliable

Build Instructions

If you are building from a source control checkout, run:


to generate the configure script.

From the top-level directory, run the following commands:


The public API is defined in strophe.h which is in the top-level directory.

The examples directory contains some examples of how to use the library; these may be helpful in addition to the API documentation

To install on your system, as root (or using sudo):

make install

Note, the default install path is /usr/local/, to specify another path use the --prefix option during configure, e.g.:

./configure --prefix=/usr


Run script build-android.sh and follow the instructions. You will need expat sources and android-ndk.


libstrophe requires:

  • expat or libxml2 - expat is the default; use --with-libxml2 to switch
  • openssl on UNIX systems

To build libstrophe using autotools you will need autoconf, automake, libtool and pkg-config.


libstrophe package has been added to popular Linux distributions, BSD systems and OSX package managers.


API documentation is inline with the code and conforms to Doxygen standards. You can generate an HTML version of the API documentation by running:


Then open docs/html/index.html.