Go to file
2024-10-16 18:17:07 +01:00
.github Add make/cmake workflows to fixes 2024-10-11 18:17:45 +01:00
apps Build fix 2024-10-16 17:55:10 +01:00
client Remove unused headers 2023-11-15 22:45:38 +00: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 Pointless whitespace tidy. 2021-10-05 15:20:37 +01:00
docker Bump docker details 2024-10-02 11:16:48 +01:00
examples Pointless whitespace tidy. 2021-10-05 15:20:37 +01:00
include Bump version 2024-10-11 18:24:23 +01:00
installer Bump version 2024-10-11 18:24:23 +01:00
lib Don't allow invalid response-topic values. 2024-10-16 15:30:44 +01:00
logo
man Fix Tiny typo in mosquitto-tls man page - "mosquitto-conf" should be "mosquitto.conf" closes #2803 2024-10-15 14:24:25 +01:00
misc Fix multiple domains in renewal. 2022-12-30 10:34:18 +00:00
plugins Add helper messages for lax permissions 2023-09-18 22:21:56 +01:00
security Fix apparmor incorrectly denying access db tmp file. 2020-12-27 23:05:53 +00:00
service Systemd: Add mosquitto group ownership 2022-07-20 17:03:42 +01:00
snap Bump version 2024-10-11 18:24:23 +01:00
src Shared subs must have a valid topic 2024-10-16 16:25:26 +01:00
test Disable test for CI check 2024-10-16 18:17:07 +01:00
www Build fix 2024-10-16 17:55:10 +01:00
.gitignore Merge branch 'fixes' 2023-08-16 14:03:29 +01:00
.travis.yml Travis: Use bionic distro. 2020-03-27 00:07:48 +00:00
about.html Pointless whitespace tidy. 2021-10-05 15:20:37 +01:00
aclfile.example
appveyor.yml Update appveyor to take into account now available packages. 2018-04-12 10:30:52 +01:00
buildtest.py Pointless whitespace tidy. 2021-10-05 15:20:37 +01:00
ChangeLog.txt Build fix 2024-10-16 17:55:10 +01:00
CMakeLists.txt Fix build errors on Darwin (Apple) ARM64 and Intel closes #2858 2024-10-15 14:45:52 +01:00
config.h Fix visibility define use on FreeBSD/NetBSD 2024-10-15 14:46:24 +01:00
config.mk Bump version 2024-10-11 18:24:23 +01:00
CONTRIBUTING.md Fix link in CONTRIBUTING.md. 2019-08-01 10:30:13 +01:00
edl-v10 Pointless whitespace tidy. 2021-10-05 15:20:37 +01:00
epl-v20 Pointless whitespace tidy. 2021-10-05 15:20:37 +01:00
libmosquitto.pc.in
libmosquittopp.pc.in
LICENSE.txt Update to EPL-2.0 2020-11-25 17:34:21 +00:00
Makefile Pointless whitespace tidy. 2021-10-05 15:20:37 +01:00
mosquitto.conf Clarify use_username_as_clientid is not global 2022-08-11 11:51:53 +01:00
NOTICE.md Update notice file. 2021-05-13 17:38:31 +01:00
pskfile.example
pwfile.example
README-compiling.md Add man page deps to readme. 2021-06-09 13:22:40 +01: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 Add Windows headless installer help. 2021-10-05 13:28:51 +01:00
README.md Readme: Add some pointers to what to do after the quick start 2024-10-03 22:52:18 +01:00
SECURITY.md Add SECURITY.md. 2019-05-29 11:02:34 +01:00
set-version.sh Bump version 2024-10-11 18:24:23 +01:00
THANKS.txt Pointless whitespace tidy. 2021-10-05 15:20:37 +01: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
vcpkg.json Bump version 2024-10-11 18:24:23 +01: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 very 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'

Note that starting the broker like this allows anonymous/unauthenticated access but only from the local computer, so it's only really useful for initial testing.

If you want to have clients from another computer connect, you will need to provide a configuration file. If you have installed from a binary package, you will probably already have a configuration file at somewhere like /etc/mosquitto/mosquitto.conf. If you've compiled from source, you can write your config file then run as mosquitto -c /path/to/mosquitto.conf.

To start your config file you define a listener and you will need to think about what authentication you require. It is not advised to run your broker with anonymous access when it is publically available.

For details on how to do this, look at the authentication methods available and the dynamic security plugin.

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