I have a golang program that uploads a ton of data to OpenStack Object Storage over https. It relies on the golang standard library
go build -compiler gccgo mycode.go
linux-vdso.so.1 => (0x00007ffee27b8000)
libgo.so.9 => /usr/lib/x86_64-linux-gnu/libgo.so.9 (0x00007f46062bf000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f46060a9000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4605cdf000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4605ac2000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f46057b9000)
trickle -s -v -u2500 myexecutable ...args
Trickle relies on using LD_PRELOAD to replace all network related calls through libc with its own implementation. This is why trickle doesn't work with static binaries.
Go makes all its own syscalls directly and does not use the libc interface, so the inter-positioned functions provided by trickle are not used.