MQTT to Google Cloud Pub/Sub adapter
Elixir Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Adapter for MQTT <-> Google Cloud Pub/Sub

The adapter interfaces with RabbitMQ (any AMQP-compliant broker should work), and sends/receives messages to Google Cloud Pub/Sub.

Deprecation Notice:

Now that Google's Cloud IoT Core has gone GA, we recommend that people use IoT Core instead of this IOT Adapter. IoT Core will scale far beyond a single RabbitMQ instance, and does not require management of a VM. It also has a stronger device authentication model.

The gcp-iot-adapter will remain available, but will not be actively maintained.


Make sure that docker is installed, then run this:


You'll end up with a tarball: amqp_pubsub.tar.gz and a Debian package: gcp-iot-adapter_*.deb. All dependencies are included.

See the GCP IoT Connection Broker Quickstart for a walkthrough.

Not-so-quick start:

See the script.

Using the adapter

Install the adapter on the server running RabbitMQ. Edit the config file: /etc/gcp-iot-adapter.conf. Restart the service. See the Quickstart for more info.

Known Issues/Limitations

  • MQTT Topic names should not have periods . in them. This is the separator used in AMQP topics.
  • The adapter doesn't support TLS for the connection to RabbitMQ - but this shouldn't be a problem when running on the local RabbitMQ server. It does connect to Pub/Sub via TLS.
  • Buildng the adapter from scratch requires Erlang 18.3 and Elixir 1.2. The packages (tarball and .deb) include this, and building with Docker will take care of those dependencies.