mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-04 08:03:37 +01:00
27 lines
2.2 KiB
Plaintext
27 lines
2.2 KiB
Plaintext
Third-party libraries: goprotobuf and beyond
|
|
20 Apr 2010
|
|
Tags: protobuf, community
|
|
|
|
Andrew Gerrand
|
|
|
|
* Introduction
|
|
|
|
On March 24, Rob Pike announced [[http://code.google.com/p/goprotobuf/][goprotobuf]], the Go bindings of Google's data interchange format [[http://code.google.com/apis/protocolbuffers/docs/overview.html][Protocol Buffers]], 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 [[http://code.google.com/p/protobuf/][protobuf]] installed. You can then install the 'proto' package with [[http://golang.org/cmd/goinstall/][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 [[http://code.google.com/p/goprotobuf/source/browse/README][README]] file.
|
|
|
|
This is one of a growing list of third-party [[http://godashboard.appspot.com/package][Go projects]]. Since the announcement of goprotobuf, the X Go bindings have been spun off from the standard library to the [[http://code.google.com/p/x-go-binding/][x-go-binding]] project, and work has begun on a [[http://www.freetype.org/][Freetype]] port, [[http://code.google.com/p/freetype-go/][freetype-go]]. Other popular third-party projects include the lightweight web framework [[http://github.com/hoisie/web.go][web.go]], and the Go GTK bindings [[http://github.com/mattn/go-gtk][gtk-go]].
|
|
|
|
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 [[http://groups.google.com/group/golang-nuts][golang-nuts]].
|