Crates.io | fundamentum-edge-pfwd |
lib.rs | fundamentum-edge-pfwd |
version | 0.2.3 |
source | src |
created_at | 2024-05-15 19:29:30.668949 |
updated_at | 2024-11-05 20:22:37.15901 |
description | The port forwarding tool for edge daemon |
homepage | https://www.dimonoff.com/services/fundamentum-iot-platform-paas |
repository | https://bitbucket.org/amotus/fundamentum-edge-pfwd |
max_upload_size | |
id | 1241430 |
size | 111,758 |
Port forwarding service for linux edge devices.
This is the device side part of a bidirectional bridge established in between a remote proxy
port open in the cloud and its actual target port on the device going through both Kafka and MQTT.
This particular component is responsible for the MQTT
<=> TARGET_PORT
part of the overall bridge.
It continuously recovers opaque fragments of an arbitrary protocol initiated cloud side on the PROXY_PORT
from an MQTT
topic,
writing those into the proper local TARGET_PORT
.
Conversely, it continuously reads opaque protocol fragments from the same local TARGET_PORT
channeling those back toward the cloud-side PROXY_PORT
through another MQTT
channel.
When opening connection, it creates an instance in a tokio task. When forwarding data, it dispatches this data to the right instance. This instance will transfer it to a target socket on the device. The instance will write data read from the socket back to mqtt
Proto rust definition and bindings can be found here : https://crates.io/crates/fundamentum-portforwarding-proto-rust/0.1.0
cargo run -- --project-id ${project_id} --region-id ${region_id} --registry-id ${registriy_id} --serial ${serial_id} --private-key ${private_key_path}
More --help
Please see the development setup guide.
Licensed under Apache License, Version 2.0 LICENSE.