# Third-party libraries: goprotobuf and beyond
20 Apr 2010
Tags: protobuf, community
Summary: Announcing Go support for Protocol Buffers, Google's data interchange format.
OldURL: /third-party-libraries-goprotobuf-and

Andrew Gerrand

##

On March 24, Rob Pike announced [goprotobuf](http://code.google.com/p/goprotobuf/),
the Go bindings of Google's data interchange format [Protocol Buffers](http://code.google.com/apis/protocolbuffers/docs/overview.html),
called protobufs for short.
With this announcement, Go joins C++, Java,
and Python as languages providing official protobuf implementations.
This marks an important milestone in enabling the interoperability between
existing systems and those built in Go.

The goprotobuf project consists of two parts:
a 'protocol compiler plugin' that generates Go source files that,
once compiled, can access and manage protocol buffers;
and a Go package that implements run-time support for encoding (marshaling),
decoding (unmarshaling), and accessing protocol buffers.

To use goprotobuf, you first need to have both Go and [protobuf](http://code.google.com/p/protobuf/) installed.
You can then install the 'proto' package with [goinstall](https://golang.org/cmd/goinstall/):

	goinstall goprotobuf.googlecode.com/hg/proto

And then install the protobuf compiler plugin:

	cd $GOROOT/src/pkg/goprotobuf.googlecode.com/hg/compiler
	make install

For more detail see the project's [README](http://code.google.com/p/goprotobuf/source/browse/README) file.

This is one of a growing list of third-party [Go projects](http://godashboard.appspot.com/package).
Since the announcement of goprotobuf, the X Go bindings have been spun off
from the standard library to the [x-go-binding](http://code.google.com/p/x-go-binding/) project,
and work has begun on a [Freetype](http://www.freetype.org/) port,
[freetype-go](http://code.google.com/p/freetype-go/).
Other popular third-party projects include the lightweight web framework
[web.go](http://github.com/hoisie/web.go),
and the Go GTK bindings [gtk-go](http://github.com/mattn/go-gtk).

We wish to encourage the development of other useful packages by the open source community.
If you're working on something, don't keep it to yourself - let us know
through our mailing list [golang-nuts](http://groups.google.com/group/golang-nuts).
