Inspiration: Linux and Unix nc command
Example protobuf definition:
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
protoc --encode=Person \
foo.proto <<<'
name: "John Doe"
email: "[email protected]"
id: 43
phone {number: "1010"}
phone {number: "0101"}
' \
| nc 127.0.0.1 8080
nc -l -p 8080 -c \
| protoc --decode=Person foo.proto
sever:
protoc --encode=Person \
foo.proto <<<'
name: "John Doe"
email: "[email protected]"
id: 42
' \
| nc -l -p 8080 -c \
| protoc --decode=Person foo.proto
client:
protoc --encode=Person \
foo.proto <<<'
name: "John Doe"
email: "[email protected]"
id: 43
phone {number: "1010"}
' \
| nc 127.0.0.1 8080 \
| protoc --decode=Person foo.proto