github.com/spacemonkeygo/openssl (go): Package openssl is a light wrapper around OpenSSL for Go.  It strives to provide a near-drop-in replacement for the Go standard library tls package, while allowing for:  OpenSSL is battle-tested and optimized C. While Go's built-in library shows great promise, it is still young and in some places, inefficient. This simple OpenSSL wrapper can often do at least 2x with the same cipher and protocol.  On my lappytop, I get the following benchmarking speeds:  Many systems support OpenSSL with a variety of plugins and modules for things, such as hardware acceleration in embedded devices.  OpenSSL allows for far greater configuration of corner cases and backwards compatibility (such as support of SSLv2). You shouldn't be using SSLv2 if you can help but, but sometimes you can't help it.  Yeah yeah, Heartbleed. But according to the author of the standard library's TLS implementation, Go's TLS library is vulnerable to timing attacks. And whether or not OpenSSL received the appropriate amount of scrutiny pre-Heartbleed, it sure is receiving it now.  Starting an HTTP server that uses OpenSSL is very easy. It's as simple as:  Getting a net.Listener that uses OpenSSL is also easy:  Making a client connection is straightforward too:  Help wanted: To get this library to work with net/http's client, we had to fork net/http. It would be nice if an alternate http client library supported the generality needed to use OpenSSL instead of crypto/tls.
Keywords: go|openssl|openssl-bindings|ssl