#edge #daemon #iot #fundamentum

bin+lib fundamentum-edge-pfwd

The port forwarding tool for edge daemon

1 unstable release

0.1.0 May 15, 2024

#1068 in Asynchronous

Download history 87/week @ 2024-05-09 67/week @ 2024-05-16

154 downloads per month

Apache-2.0

33KB
540 lines

Fundamentum Edge Pwfd

Crates.io License Build Status Docs.rs

Website | Docs

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

Usage

cargo run -- --project-id ${project_id} --region-id ${region_id} --registry-id ${registriy_id} --serial ${serial_id} --private-key ${private_key_path}

More --help

Development setup

Please see the development setup guide.

License

Licensed under Apache License, Version 2.0 LICENSE.

Dependencies

~21–37MB
~629K SLoC