Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vx-labs/wasp
🐝 Distributed MQTT broker, written in Go
https://github.com/vx-labs/wasp
broker mqtt
Last synced: 24 days ago
JSON representation
🐝 Distributed MQTT broker, written in Go
- Host: GitHub
- URL: https://github.com/vx-labs/wasp
- Owner: vx-labs
- License: mpl-2.0
- Created: 2020-03-18T22:48:31.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-08-08T23:46:35.000Z (over 1 year ago)
- Last Synced: 2024-11-25T16:48:36.970Z (about 2 months ago)
- Topics: broker, mqtt
- Language: Go
- Homepage:
- Size: 1.02 MB
- Stars: 6
- Watchers: 4
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Wasp
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fvx-labs%2Fwasp.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fvx-labs%2Fwasp?ref=badge_shield)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/9cbf68593140426591f86a7c744cc260)](https://app.codacy.com/gh/vx-labs/wasp?utm_source=github.com&utm_medium=referral&utm_content=vx-labs/wasp&utm_campaign=Badge_Grade)Distributed MQTT broker, written in Go.
## Project status disclaimer
This project is a "personnal hobby playground" project.
It won't suit your needs if you are looking for an entreprise-grade MQTT Broker.
For example, Security, Release management, Automated feature and performance testing, Technical support (this list is obviously non-exhaustive)... are jobs that this project team does **NOT** do, or actively work on.
However, if you want to play and learn with Golang, MQTT, Gossip, GRPC, and other fun technologies, have fun with this project, and fell free to contribute by forking the project, hacking on it, or submiting a Pull Request !
## Installing
Wasp is currently released as a built binary file, you just have to download it, make it executable, and run it.
### Linux
If you are using Archlinux, an AUR package is available (named `wasp`).
For other Linux distributions, you can run the following shell one-liner:```shell
curl -sLo Downloads/wasp https://github.com/vx-labs/wasp/v4/releases/download/v4.0.0/wasp_linux-amd64 && chmod +x ./Downloads/wasp
```Il will download Wasp, save it in your ./Downloads folder, and make it executable.
## Running Wasp on your workstation
Once downloaded, you can run Wasp by simply invoking it in your shell.
```shell
./Download/wasp
```Wasp by default runs an MQTT listener on port 1883, and will print on the terminal the IP adfress ip it detected.
You can connect to it using an MQTT client, like Mosquitto.```shell
mosquitto_sub -t 'test' -d -q 1 &
mosquitto_pub --port 1884 -t 'test' -d -q 1 -m 'hello'
```### Increasing log level
Wasp use a leveled logger, supporting traditional level name.
* debug
* info
* warning
* errorIt will by default only print `warning` and `error` messages.
You can alter this behaviour by adding the `log-level` flag when invoking Wasp.For example, if you want to display `info` messages and above, you can type:
```shell
./Downloads/wasp --log-level info
```### Persisting data between restarts
Wasp builds a _State_ to store all retained messages, subscriptions, session metadatas, ... etc.
This state is saved on a filesystem, by the default Wasp configuration is to save it in `/tmp/wasp`.This folder is, in most workstation configuration, erased at startup.
If you want your Wasp data to survive a host reboot, you must change this location by passing the `data-dir` flag.
For example, if you want to save Wasp data in the `wasp-data` folder, you can run the following command.
```shell
./Downloads/wasp --data-dir ./wasp-data
```