I use Wireguard to circumvent Iran's censorship. A major problem with it is that it's very hard to selectively proxy specific domains/apps through Wireguard, while leaving others alone. This is an essential feature for Iran's internet, as: 1. The connection is terrible, so avoiding using the proxy for uncensored sites helps a lot. 2. International traffic is 2x more expensive, so avoiding the proxy for internal traffic is very beneficial. 3. Some internal sites ban international IPs and need Iranian IPs.
The easiest way to solve this program, as far as I understand, is to add the ability to expose the tunnel as a socks5 proxy on the client side. This is the approach that shadowsocks, v2ray, etc have adopted. There are mature solutions to selectively routing traffic through a socks proxy. I searched around, and there are docker containers that already do this wireguard-to-socks thing; But running docker is expensive on a non-Linux machine, so it'd be much appreciated if you could support exposing socks and HTTP proxy servers natively.