temporal | 40ee551 | 2008-07-10 02:12:20 +0000 | [diff] [blame] | 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 | |
kenton@google.com | e21c573 | 2009-05-06 20:41:30 +0000 | [diff] [blame] | 18 | If you only want to compile examples in one language, use "make cpp"*, |
temporal | 40ee551 | 2008-07-10 02:12:20 +0000 | [diff] [blame] | 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: |
Feng Xiao | e428862 | 2014-10-01 16:26:23 -0700 | [diff] [blame] | 25 | https://developers.google.com/protocol-buffers/docs/tutorials |
kenton@google.com | e21c573 | 2009-05-06 20:41:30 +0000 | [diff] [blame] | 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. |
Tim Swast | 7e31c4d | 2015-11-20 15:32:53 -0800 | [diff] [blame] | 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 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. |