#iot #astarte #sdk

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

4 releases

0.6.0 May 9, 2024
0.5.3 Jan 31, 2024
0.5.2 Jul 3, 2023
0.5.1 Apr 26, 2023
0.1.0 Apr 21, 2023

#841 in Network programming

Download history 10/week @ 2024-01-29 1/week @ 2024-02-05 124/week @ 2024-02-12 56/week @ 2024-02-19 3/week @ 2024-02-26 20/week @ 2024-03-11 6/week @ 2024-04-01 129/week @ 2024-05-06

129 downloads per month

Apache-2.0

145KB
3K 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 -t/--toml cli option.

The format for the configuration file is the following:

##
# Required fields
#
realm = "<REALM>"
pairing_url = "<PAIRING_URL>"
grpc_socket_port = 0 # Required, 0 is only a placeholder

##
# Optional fields
#
interfaces_directory = "[INTERFACES_DIRECTORY]"
# Device id, if not provided it will be retrieved from `io.edgehog.Device` dbus-service
device_id = "[DEVICE_ID]"
# 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]"
# Path to store persistent data, defaults to "./"
store_directory = "<STORE_PATH>"

[astarte]
# Ignore SSL errors, defaults to false
ignore_ssl = false

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

Example

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

Dependencies

~82MB
~1.5M SLoC