#iot #astarte #sdk #send-receive #config-file

bin+lib astarte-message-hub

A central service that runs on (Linux) devices for collecting and delivering messages from N apps using 1 MQTT connection to Astarte

7 releases

new 0.7.0 Nov 4, 2024
0.6.1 Jun 4, 2024
0.6.0 May 9, 2024
0.5.4 May 24, 2024
0.1.0 Apr 21, 2023

#1050 in Network programming

Apache-2.0

190KB
4K SLoC

Astarte Message Hub

Crates.io docs.rs CI codecov LICENSE

A central service that runs on (Linux) devices for collecting and delivering messages from N apps using 1 MQTT connection to Astarte.

Documentation

Requirements

  • protobuf >= 3.15
  • Rust version >= 1.72.0

Configuration

The Astarte Message Hub is configured through message-hub-config.toml in the current working directory, otherwise the system wide /etc/message-hub/config.toml can be used. In alternative, you can specify the path to the configuration file with the -c/--config cli option.

The format for the configuration file is the following:

##
# Required fields
#
realm = "<REALM>"
pairing_url = "<PAIRING_URL>"
# Used to register a device and obtain a `credentials_secret`
pairing_token = "[PAIRING_TOKEN]"
# Credential secret, if not provided the `pairing_token` is required
credentials_secret = "[CREDENTIALS_SECRET]"
# Device id, if not provided it will be retrieved from `io.edgehog.Device` dbus-service
device_id = "[DEVICE_ID]"

##
# Optional fields
#
# Directory containing the JSON interfaces
interfaces_directory = "[INTERFACES_DIRECTORY]"

##
# Other fields, with defaults
#
# Path to store persistent data
store_directory = "./"
# Address the gRPC connection will bind to
grpc_socket_host = "127.0.0.1"
grpc_socket_port = 5051

[astarte]
# Ignore SSL errors
ignore_ssl = false

An example configuration file can be found in the examples direction.

Override the configuration file

You can override the configuration file options by passing arguments to the command line or exporting the corresponding environment variables. Run the massage hub with --help to see all the options.

Example

Have a look at the examples for an usage example showing how to send and receive data.

Dependencies

~74MB
~1.5M SLoC