The App has moved to mqtt-explorer.com
MQTT Explorer is a comprehensive and easy-to-use MQTT Client.
Downloads can be found at the link above.
This page is dedicated to its development. Pull-Requests and error reports are welcome.
The fastest way to start developing is with GitHub Codespaces:
- Click the green "Code" button above
- Select "Codespaces" tab
- Click "Create codespace on [branch]"
- Wait for the environment to set up (includes Node.js and MQTT broker)
- Run
yarn dev:serverto start development
The devcontainer includes a pre-configured MQTT broker and all development tools. See .devcontainer/README.md for details.
npm install -g yarn
yarn
yarn build
yarn startMQTT Explorer can also run as a web application served by a Node.js server:
npm install -g yarn
yarn
yarn build:server
yarn start:serverThen open your browser to http://localhost:3000. For more details, see BROWSER_MODE.md.
Launch Application
npm install -g yarn
yarn
yarn devLaunch in development mode with hot reload:
npm install -g yarn
yarn
yarn dev:serverThe app directory contains all the rendering logic, the backend directory currently contains the models, tests, connection management, src contains all the electron bindings. mqttjs is used to facilitate communication to MQTT brokers.
To achieve a reliable product automated tests run regularly on CI.
- Data model tests:
yarn test:backend - App tests:
yarn test:app - UI test suite:
yarn test:ui(independent, deterministic tests) - Demo video:
yarn ui-test(UI test recording for documentation)
The UI test suite validates core functionality through automated browser tests. Each test is independent and deterministic.
# Run with automated setup (recommended)
./scripts/runUiTests.sh
# Or run directly (requires manual MQTT broker setup)
yarn build
yarn test:uiSee docs/UI-TEST-SUITE.md for more details.
A mosquitto MQTT broker is required to generate the demo video.
yarn build
yarn ui-testCreate a PR to release branch.
There needs to be a "feat: some new feature" or "fix: some bugfix" commit for a new release to be created
Create a PR to beta branch. A "feat" or "fix" commit is necessary to create a new version.
git clone --single-branch -b gh-pages https://github.com/thomasnordquist/MQTT-Explorer.git mqtt-explorer-pages
cd mqtt-explorer-pages
bundle install
bundle exec jekyll serve --incremental
Readme file: Readme.tpl.md
Preview is available at http://localhost:4000/Readme.tpl
npm install
./updateReadme.ts
The readme will be generated from the docs.
The license allows for anyone to adapt, share, and redistribute the material, as long as it is non-commercial.