fundamentum-edge-pfwd

Crates.iofundamentum-edge-pfwd
lib.rsfundamentum-edge-pfwd
version0.2.3
sourcesrc
created_at2024-05-15 19:29:30.668949
updated_at2024-11-05 20:22:37.15901
descriptionThe port forwarding tool for edge daemon
homepagehttps://www.dimonoff.com/services/fundamentum-iot-platform-paas
repositoryhttps://bitbucket.org/amotus/fundamentum-edge-pfwd
max_upload_size
id1241430
size111,758
Auto Dimonoff (autodimonoff)

documentation

README

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.

Commit count: 0

cargo fmt