Hi all.
Please help me understand one point in the interaction of a program written in Kotlin with a program written in Golang.
I can’t understand how they interact.
There is a program called sing-box (The universal proxy platform), written in Golang - GitHub - SagerNet/sing-box: The universal proxy platform.
This program implements a client and server to create VPN tunnels on very different protocols. The entire list of supported protocols is listed here - Introduction - sing-box, it is very large.
There is a graphical client for Android, written in Kotlin - GitHub - SagerNet/sing-box-for-android: Experimental Android client for sing-box.
Aka - sing-box | F-Droid - Free and Open Source Android App Repository
It works like this: a VPN connection profile is created and a text config is inserted into it, which describes what we will connect through and where. Or this config is loaded by url. Those. in the graphical client there are no windows where I choose what I will connect through. I just have to specify the config by url myself or copy-paste the config code.
I looked through a lot of Kotlin source files for the program and never found any code sections where interaction with sing-box (The universal proxy platform) in Golang is implemented.
The whole point is that 99% of the functionality is in golang code, and in kotlin there is only a minimal interface.
Please help me find the code in the Android client where exactly the interaction with sing-box in golang occurs.
Many thanks to everyone who responds.