Package list golang-github-go-kit-kit / lintian-fixes/main transport / thrift

Tree @lintian-fixes/main (Download .tar.gz)

# Thrift

[Thrift]( is a large IDL and transport package from Apache, popularized by Facebook.
Thrift is well-supported in Go kit, for organizations that already have significant Thrift investment.
And using Thrift with Go kit is very simple.

First, define your service in the Thrift IDL.
The [Thrift IDL documentation]( provides more details.
See [add.thrift]( for an example.
Make sure the Thrift definition matches your service's Go kit (interface) definition.

Next, [download Thrift]( and [install the compiler](
On a Mac, you may be able to `brew install thrift`.

Then, compile your service definition, from .thrift to .go.
You'll probably want to specify the package_prefix option to the --gen go flag.
See [THRIFT-3021]( for more details.

thrift -r --gen add.thrift

Finally, write a tiny binding from your service definition to the Thrift definition.
It's a straightforward conversion from one domain to the other.
See [thrift_binding.go]( for an example.

That's it!
The Thrift binding can be bound to a listener and serve normal Thrift requests.
And within your service, you can use standard Go kit components and idioms.
Unfortunately, setting up a Thrift listener is rather laborious and nonidiomatic in Go.
Fortunately, [addsvc]( is a complete working example with Thrift support.
And remember: Go kit services can support multiple transports simultaneously.