norouter is really cool, the idea of forwarding IP traffic via a stdin/stdout "exec" session is great.
I see a few ways my project Bifrost and libp2p could improve norouter and vise-versa:
Bifrost defines a Transport interface and a common Quic transport over a io.Reader/io.Writer or a net.Listener.
Norouter can pass the "exec" session read/writer to the Quic constructor to make a Transport.
Bifrost can then be dynamically configured to listen on local ports & forward traffic via norouter.
Multiple transports can be used simultaneously & Bifrost will balance traffic over them.
Other logic like connection management and on-demand conns is then implemented "for free"
There's then a very modular / easy way to then swap norouter out for a more production grade transport like direct UDP connections w/ k8s DNS resolution later on, without changing any app code.
Would love to hear your thoughts on this @AkihiroSuda
norouter is really cool, the idea of forwarding IP traffic via a stdin/stdout "exec" session is great.
I see a few ways my project Bifrost and libp2p could improve norouter and vise-versa:
There's then a very modular / easy way to then swap norouter out for a more production grade transport like direct UDP connections w/ k8s DNS resolution later on, without changing any app code.
Would love to hear your thoughts on this @AkihiroSuda