I often need to expose some service running locally on my computer to the public internet for some reason or another. Demoing a website, exposing an API, giving someone access to download some local files, stuff like that.
The popular solution for this is tools like ngrok. You download their CLI application to your computer, specify a port, and your local service is available at a URL like https://a78f837.ngrok.io/.
The downside of this is that there are limits for the free versions of these services.
There’s a service https://tunnelto.dev/ which I’ve used in the past. It’s an ngrok alternative for exposing local services publically for things like demos, testing, etc.
I heard about tunnelto.dev when it was announced on Hacker News and gave it a try along with several others on my team at Osmos. It looked fresh, was written Rust, and was at least partially open source - all great. I even signed up for the (very cheap) paid plan which gives custom subdomains and some other stuff.
Background I recently had the need to build a custom renderer for graphs generated by graphviz for a project visualizing computation graphs for RNNs.
Graphviz has an output format called plain and plain-ext which generates a very simple text-based layout specification for all nodes and edges in the input graph. It’s pretty well spec’d out in the official docs for the most part: https://graphviz.org/docs/outputs/plain/.
Here’s an example of what plain-ext output format looks like for a simple graph: