Go to file
Christian Beier fe10226cc9 Fix building with Visual Studio 2008
This older Microsoft compiler does not support mixing declarations and
code and misses some error defines. This commit enables building with
VS2008 by moving up some variable declarations and defining error
codes to their WinSock counterparts in case they're not defined.

Signed-off-by: Christian Beier <info@christianbeier.net>
2021-04-18 21:23:25 +02:00
.github Add issue template. 2021-04-03 11:06:15 +01:00
apps Guard against missing UNUSED. 2021-03-29 17:07:40 +01:00
client Fix building with Visual Studio 2008 2021-04-18 21:23:25 +02:00
cmake Fix cjson include paths. 2020-12-04 22:15:19 +00:00
deps Move deps directory to root. 2020-10-13 16:06:06 +01:00
doc JOSS paper. 2017-05-17 14:56:28 +01:00
docker Update docker. 2021-04-03 13:50:40 +01:00
examples Merge remote-tracking branch 'origin/fixes' into develop 2020-09-24 17:03:14 +01:00
include Fix building with Visual Studio 2008 2021-04-18 21:23:25 +02:00
installer Bump version, update web page. 2021-04-03 12:00:33 +01:00
lib Fix building with Visual Studio 2008 2021-04-18 21:23:25 +02:00
logo Improve logo files. 2016-10-05 15:52:09 +01:00
man Fix man page typos. 2021-04-18 09:10:27 +01:00
misc Replace bash specific equality check with POSIX check. 2021-02-03 09:52:52 +00:00
plugins CMake: Fix undefined symbols in plugins 2021-04-06 21:15:08 +02:00
security Fix apparmor incorrectly denying access db tmp file. 2020-12-27 23:05:53 +00:00
service Systemd service changes for updated pid path. 2020-12-17 00:24:10 +00:00
snap Bump version, update web page. 2021-04-03 12:00:33 +01:00
src Fix building with Visual Studio 2008 2021-04-18 21:23:25 +02:00
test Fix segfault on client sending malformed CONNACk. 2021-04-03 11:14:27 +01:00
www Bump version, update web page. 2021-04-03 12:00:33 +01:00
.gitignore Ignore windows 64 bit build dir. 2020-11-17 10:21:58 +00:00
.travis.yml Travis: Use bionic distro. 2020-03-27 00:07:48 +00:00
about.html Update to EPL-2.0 2020-11-25 17:34:21 +00:00
aclfile.example Initial contribution. 2014-05-07 23:27:00 +01:00
appveyor.yml Update appveyor to take into account now available packages. 2018-04-12 10:30:52 +01:00
buildtest.py Better outgoing QoS 0 limiting. 2020-11-25 10:00:45 +00:00
ChangeLog.txt Fix possible crash having just upgraded from 1.6. 2021-04-08 23:29:46 +01:00
CMakeLists.txt Bump version, update web page. 2021-04-03 12:00:33 +01:00
config.h Fix building with Visual Studio 2008 2021-04-18 21:23:25 +02:00
config.mk Bump version, update web page. 2021-04-03 12:00:33 +01:00
CONTRIBUTING.md Fix link in CONTRIBUTING.md. 2019-08-01 10:30:13 +01:00
edl-v10 Initial contribution. 2014-05-07 23:27:00 +01:00
epl-v20 Update to EPL-2.0 2020-11-25 17:34:21 +00:00
libmosquitto.pc.in Add pkg-config files to CMake build (#213) 2016-09-10 21:48:50 +01:00
libmosquittopp.pc.in Add pkg-config files to CMake build (#213) 2016-09-10 21:48:50 +01:00
LICENSE.txt Update to EPL-2.0 2020-11-25 17:34:21 +00:00
Makefile install Makefile target should depend on all, not mosquitto 2021-01-08 17:06:30 +00:00
mosquitto.conf Fix bind_interface option. 2021-01-07 22:50:32 +00:00
notice.html Update to EPL-2.0 2020-11-25 17:34:21 +00:00
pskfile.example Initial contribution. 2014-05-07 23:27:00 +01:00
pwfile.example Initial contribution. 2014-05-07 23:27:00 +01:00
README-compiling.md Add notes that libsystemd-dev or similar is needed. 2021-01-15 09:58:19 +00:00
README-letsencrypt.md Breaking: Drop privileges after loading the configuration 2020-11-05 12:05:07 +00:00
README-tests.md Consistency in readme naming. 2020-11-12 22:08:38 +00:00
README-windows.txt Update Windows readme. 2021-04-06 14:41:45 +01:00
README.md Add more documentation on pthread support. 2021-04-06 14:52:20 +01:00
SECURITY.md Add SECURITY.md. 2019-05-29 11:02:34 +01:00
set-version.sh Bump version, update web page. 2021-04-03 12:00:33 +01:00
THANKS.txt Merge branch 'master' into develop 2017-03-06 21:19:53 +00:00
travis-configure.sh Better attempt at fixing mac travis. 2018-09-25 14:25:02 +01:00
travis-install.sh Don't update homebrew in travis, it takes an age otherwise. 2020-12-04 23:23:58 +00:00

Eclipse Mosquitto

Mosquitto is an open source implementation of a server for version 5.0, 3.1.1, and 3.1 of the MQTT protocol. It also includes a C and C++ client library, and the mosquitto_pub and mosquitto_sub utilities for publishing and subscribing.

See the following links for more information on MQTT:

Mosquitto project information is available at the following locations:

There is also a public test server available at https://test.mosquitto.org/

Installing

See https://mosquitto.org/download/ for details on installing binaries for various platforms.

Quick start

If you have installed a binary package the broker should have been started automatically. If not, it can be started with a basic configuration:

mosquitto

Then use mosquitto_sub to subscribe to a topic:

mosquitto_sub -t 'test/topic' -v

And to publish a message:

mosquitto_pub -t 'test/topic' -m 'hello world'

Documentation

Documentation for the broker, clients and client library API can be found in the man pages, which are available online at https://mosquitto.org/man/. There are also pages with an introduction to the features of MQTT, the mosquitto_passwd utility for dealing with username/passwords, and a description of the configuration file options available for the broker.

Detailed client library API documentation can be found at https://mosquitto.org/api/

Building from source

To build from source the recommended route for end users is to download the archive from https://mosquitto.org/download/.

On Windows and Mac, use cmake to build. On other platforms, just run make to build. For Windows, see also README-windows.md.

If you are building from the git repository then the documentation will not already be built. Use make binary to skip building the man pages, or install docbook-xsl on Debian/Ubuntu systems.

Build Dependencies

  • c-ares (libc-ares-dev on Debian based systems) - only when compiled with make WITH_SRV=yes
  • cJSON - for client JSON output support. Disable with make WITH_CJSON=no Auto detected with CMake.
  • libwebsockets (libwebsockets-dev) - enable with make WITH_WEBSOCKETS=yes
  • openssl (libssl-dev on Debian based systems) - disable with make WITH_TLS=no
  • pthreads - for client library thread support. This is required to support the mosquitto_loop_start() and mosquitto_loop_stop() functions. If compiled without pthread support, the library isn't guaranteed to be thread safe.
  • uthash / utlist - bundled versions of these headers are provided, disable their use with make WITH_BUNDLED_DEPS=no
  • xsltproc (xsltproc and docbook-xsl on Debian based systems) - only needed when building from git sources - disable with make WITH_DOCS=no

Equivalent options for enabling/disabling features are available when using the CMake build.

Credits

Mosquitto was written by Roger Light roger@atchoo.org

Master: Travis Build Status (master) Develop: Travis Build Status (develop) Fixes: Travis Build Status (fixes)