In order to utilize my existing public servers, I wrote this tool that exposes local services to clients over the public network. That is pb-mapper
.
For example:
Let's say you have a file transfer service running on your home computer, and you can expose that service to the public network via pb-mapper-server-cli
. When you are working outside, you can subscribe to your home file transfer service via pb-mapper-client-cli
, which will emulate the same file transfer service locally, and you can just use the service as you would use file transfer at home.
The graphical description is as follows:
graph TD
outside-file-transfer-service<-->pb-mapper-client-cli <-->|subcribe|pb-mapper-server
home-file-transfer-service<-->pb-mapper-server-cli<-->|register|pb-mapper-server
- Public server handler: used to deploy to public network. The role is to provide
server-side
registration andclient-side
subscription to the client's local machine - Local server handler: used to map local server to a public service [TCP]
- Local server handler: used to map local server to a public service [UDP]
- Local client handler: Get the services that have been mapped to the public server [TCP]
- Local client handler: Get the services that have been mapped to the public server [UDP]
- Show remote server status: Displays the current operational status of the public server, such as the assigned conn_id, and the keys of the registered servers
- Latency testing: Test the latency of the server that is mapped locally to complete the entire request
- Check for key existence before
client-side-cli
connection is started - Github CI/CD
- Docker deployment
- Adding Documentation and Notes: such as
#![deny(missing_docs, rustdoc::broken_intra_doc_links)]