For me the main reasons to pick Go in those context are cross-compilation, static binaries and more subjectively better productivity. You can very quickly get an MVP running and distribute it knowing it will work everywhere.
I appreciate the things you wrote at the end of the github page.
I have no idea if you could make any use of such a thing, but, if you email info@rsync.net we would be happy to give a free-forever account to use in any way you see fit.
In this specific case, the 'static binaries' and 'cross-compilation' aspect aren't relevant, as vanta is a dynamically linked binary with multiple library dependencies; it has to link against libpcap, which also pulls in some infiniband libraries on my system, plus libdbus which pulls in libsystemd, libgcrypt, libgpg-error, libcap, and libs lz4, lzma, and zstd. In fact, the only library that tcpdump links against that vanta doesn't is libcrypto.
Note that none of this has to do with vanta itself; it's solely because it depends on libpcap, and libpcap depends on all of those other libraries. Still, it does mean that cross-compiling isn't notably easier than just building tcpdump itself.
Great question! I chose Go mainly because it's simple, efficient, and widely used — and honestly, it's the language I'm most comfortable with right now.
I'm still a student, and I don’t have super big ambitions yet — I just wanted to build something I could actually finish and understand
Rust is amazing, but I haven’t started learning it seriously yet. It feels a bit overwhelming at this stage. Maybe one day, when I'm ready to dive deeper!
Good luck with your Burp project too — I’d love to see it if you share it someday!
I chose go mainly for static binaries (no install steps needed for the end user), and also because I have been really enjoying writing go programs lately, mainly because of the simplicity without too much of a tradeoff for speed.