What it is
A compiled programming language from Google โ as fast as C++, but noticeably simpler to develop in, with excellent built-in support for parallel work.
How we apply it
For services where performance under load matters โ for example, media servers streaming video to many viewers at once.
Where Go helps a business
- A service holds many simultaneous connections: chats, voice, stream viewers.
- You need one fast program with no dependencies that is easy to run on a server.
- Ready-made network components written in Go are involved, such as VPN engines.
How we use it
- Peregovorka. In the voice and chat platform the service for chats, accounts, roles, voice signalling and the viewer counter is written in Go.
- VPN engines in an app. Xray and sing-box are written in Go. In OshaVPN for Android both engines are built into one library with gomobile; on Windows they run as separate processes.
Common problems
- A newer Go means newer OS requirements. Xray built with a newer Go does not start on Windows 7, so the Windows 7 client runs sing-box built for older Windows.
- Building for Android is a job of its own. Both engines are built with gomobile and Docker into one library, a separate step in every app release.
When you do not need it
For a bot, an integration or a store back end, Python is faster to develop and easier to maintain. We reach for Go when the load or the ready-made components call for it.