Skip to content

Latest commit

 

History

History
 
 

examples

This directory contains example code that uses Protocol Buffers to manage an
address book.  Two programs are provided, each with three different
implementations, one written in each of C++, Java, and Python.  The add_person
example adds a new person to an address book, prompting the user to input
the person's information.  The list_people example lists people already in the
address book.  The examples use the exact same format in all three languages,
so you can, for example, use add_person_java to create an address book and then
use list_people_python to read it.

You must install the protobuf package before you can build these.

To build all the examples (on a unix-like system), simply run "make".  This
creates the following executable files in the current directory:
  add_person_cpp     list_people_cpp
  add_person_java    list_people_java
  add_person_python  list_people_python

If you only want to compile examples in one language, use "make cpp"*,
"make java", or "make python".

All of these programs simply take an address book file as their parameter.
The add_person programs will create the file if it doesn't already exist.

These examples are part of the Protocol Buffers tutorial, located at:
  https://developers.google.com/protocol-buffers/docs/tutorials

* Note that on some platforms you may have to edit the Makefile and remove
"-lpthread" from the linker commands (perhaps replacing it with something else).
We didn't do this automatically because we wanted to keep the example simple.

## Go ##

The Go example requires a plugin to the protocol buffer compiler, so it is not
build with all the other examples.  See:
  https://github.com/golang/protobuf
for more information about Go protocol buffer support.

First, install the Protocol Buffers compiler (protoc).
Then, install the Go Protocol Buffers plugin
($GOPATH/bin must be in your $PATH for protoc to find it):
  go get github.com/golang/protobuf/protoc-gen-go

Build the Go samples in this directory with "make go".  This creates the
following executable files in the current directory:
  add_person_go      list_people_go
To run the example:
  ./add_person_go addressbook.data
to add a person to the protocol buffer encoded file addressbook.data.  The file
is created if it does not exist.  To view the data, run:
  ./list_people_go addressbook.data

Observe that the C++, Python, and Java examples in this directory run in a
similar way and can view/modify files created by the Go example and vice
versa.