7 releases
new 0.2.4 | Nov 13, 2024 |
---|---|
0.2.3 | Nov 5, 2024 |
0.2.2 | Sep 13, 2024 |
0.2.1 | Aug 21, 2024 |
0.1.0 | May 15, 2024 |
#1477 in Asynchronous
167 downloads per month
Used in fundamentum-edge-daemon
33KB
602 lines
Fundamentum Edge Pwfd
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
~20–34MB
~615K SLoC