Package port provides a simple API to write Erlang ports in Go. Currently line, packet and stream based ports are available for use with arbitrary binaries. Sending and receiving arbitrary Erlang terms over ports is a work in progress (see https://github.com/goerlang/etf).
For more information on Erlang ports see http://www.erlang.org/doc/tutorial/c_port.html.