Tortoise evolved: MQTT 5 support in the Tortoise MQTT client

MQTT is a light-weight PubSub protocol used for machine to machine communication. It is often used in IoT applications, so it fits well in many Nerves projects.

Tortoise is an MQTT client for Elixir. It started its life as an MQTT 3.1.1 client but is in the progress of getting an upgrade to the latest version of MQTT; version 5.

Martin will introduce MQTT; give an overview of the new features in MQTT 5; how Tortoise is designed to make MQTT easy to work within Elixir, and how MQTT 5 will influence that design.


  • Introduce MQTT
  • Show some use cases
  • Introduce the Elixir MQTT client called Tortoise
  • Talk about how the API of Tortoise came to be, and how changes in the MQTT specification will alter this design. This should be interesting for people implementing protocols and protocol clients in Elixir, as well as answer why Tortoise is the way it is to people who just want to use Tortoise.



  • People interested in Nerves
  • Users of the MQTT protocol, or people interested in using it
  • Users of Tortoise
  • People who implement protocol clients in Elixir


Do you know the answer to this Elixir Challenge?

Article by Martin Gausby

Elixir has a concept of protocols which provide polymorphism on data types and structures. In our example we pipe the result of generating a MapSet into the to_list/1 function on the Enum module. Enum is a module containing functions that work on data types implementing the Enumerable protocol; examples of these are lists, maps, and ranges.


What are Elixir's trending themes for 2019? ElixirConf EU

Article by Martin Gausby

ElixirConf EU conference is the European hub for the Elixir community, their 27 talks and are carefully picked each year. As a result, the themes of the conference are a good guide in finding out what is trending in 2019. Our Elixir expert has considered all the talks that will take place between 8–9 April, and found 6 main themes this year.