option cc_generic_services = true; package kvrpc; enum Result { SUCCESS = 0; FAILURE = 1; } message Put { required string key = 1; required bytes value = 2; } message PutReply { required Result result = 1; } message Get { required string key = 1; } message GetReply { required Result result = 1; optional bytes value = 2; } service KeyValueService { rpc PutValue(Put) returns(PutReply); rpc GetValue(Get) returns(GetReply); }