I read that G-WAN supports Go. As far as I know, Go can only produce statically linked executables. So how does Go work on G-WAN, through CGI/FastCGI? Or simply invoking the executable with the raw request on stdin?
I would love to be able to program Go and take advantage of G-WAN's performance.
GO has its own runtime, it uses segmented stacks and it introduced goroutines, so a C program cannot (easily) embed GO the way C++, C-Sharp, Java can be used from C. This would be possible to do but many pitfalls would have to be resolved.
Therefore, for GO G-WAN has used CGI
, which works very well if you have many CPU Cores (re-tested today with a newer release of GO on 6-CPU Cores).
Other precautions have been taken to prevent a long GO servlet from preventing G-WAN from processing other requests while the GO reply is built but the rest is pretty straightforward.