1 This directory contains example code that uses Protocol Buffers to manage an 2 address book. Two programs are provided, each with three different 3 implementations, one written in each of C++, Java, and Python. The add_person 4 example adds a new person to an address book, prompting the user to input 5 the person's information. The list_people example lists people already in the 6 address book. The examples use the exact same format in all three languages, 7 so you can, for example, use add_person_java to create an address book and then 8 use list_people_python to read it. 9 10 You must install the protobuf package before you can build these. 11 12 To build all the examples (on a unix-like system), simply run "make". This 13 creates the following executable files in the current directory: 14 add_person_cpp list_people_cpp 15 add_person_java list_people_java 16 add_person_python list_people_python 17 18 If you only want to compile examples in one language, use "make cpp"*, 19 "make java", or "make python". 20 21 All of these programs simply take an address book file as their parameter. 22 The add_person programs will create the file if it doesn't already exist. 23 24 These examples are part of the Protocol Buffers tutorial, located at: 25 https://developers.google.com/protocol-buffers/docs/tutorials 26 27 * Note that on some platforms you may have to edit the Makefile and remove 28 "-lpthread" from the linker commands (perhaps replacing it with something else). 29 We didn't do this automatically because we wanted to keep the example simple. 30 31 ## Go ## 32 33 The Go example requires a plugin to the protocol buffer compiler, so it is not 34 build with all the other examples. See: 35 https://github.com/golang/protobuf 36 for more information about Go protocol buffer support. 37 38 First, install the Protocol Buffers compiler (protoc). 39 Then, install the Go Protocol Buffers plugin 40 ($GOPATH/bin must be in your $PATH for protoc to find it): 41 go get github.com/golang/protobuf/protoc-gen-go 42 43 Build the Go samples in this directory with "make go". This creates the 44 following executable files in the current directory: 45 add_person_go list_people_go 46 To run the example: 47 ./add_person_go addressbook.data 48 to add a person to the protocol buffer encoded file addressbook.data. The file 49 is created if it does not exist. To view the data, run: 50 ./list_people_go addressbook.data 51 52 Observe that the C++, Python, and Java examples in this directory run in a 53 similar way and can view/modify files created by the Go example and vice 54 versa. 55