Spotlight: Tortoise, an event-sourcing library based on the MQTT protocol.

Project Spotlight: Tortoise, a MQTT client for Elixir

Tortoise is an MQTT client written for Elixir. MQTT is a lightweight machine to machine pub/sub protocol. Tortoise’s goal is to wrap the message passing nature of MQTT in a library that feels natural to an Elixir developer—that is, passing a message to the broker is like sending a message to a process, and receiving messages from the broker is handled via a GenServer-like callback module defined by the user. Tortoise will do its best to make sure the message is delivered, even if the connection should be dropped temporarily.

The project works great in combination with Nerves, but can also be used to orchestrate work between computers in a data center, or provide feedback from a CI system; the sky's the limit.

Currently Tortoise supports just about everything specified in the 3.1.1 specification of the MQTT protocol. Recently, many brokers have started to update to the MQTT 5 protocol, and work has been started to support newly introduced features in Tortoise.

There are many ways one can help out development; the easiest is trying it out and giving feedback about the experience. Documentation and user guides are also great ways to help out, or one can… casually mention the project during your keynote at a major programming conference.

Project documentation can be found on the Tortoise HexDocs

$ tail /dev/random

# it’s not news, but it is newsworthy