planning
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s

This commit is contained in:
2024-10-14 09:15:30 +02:00
parent bcba00a730
commit 6e64e138e2
21059 changed files with 2317811 additions and 1 deletions

View File

@@ -0,0 +1,90 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"extends": [],
"messages": [
{
"name": "Point",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"extensions": null,
"fields": [
{
"name": "x",
"type": "int32",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "y",
"type": "int32",
"tag": 2,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "label",
"type": "string",
"tag": 3,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
]
},
{
"name": "Line",
"enums": [],
"extends": [],
"extensions": null,
"messages": [],
"options": {},
"fields": [
{
"name": "start",
"type": "Point",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "end",
"type": "Point",
"tag": 2,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "label",
"type": "string",
"tag": 3,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
]
}
],
"options":{}
}

View File

@@ -0,0 +1,11 @@
message Point {
required int32 x = 1;
required int32 y = 2;
optional string label = 3;
}
message Line {
required Point start = 1;
required Point end = 2;
optional string label = 3;
}

View File

@@ -0,0 +1,99 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"extends": [],
"messages": [
{
"name": "Point",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"extensions": null,
"fields": [
{
"name": "x",
"type": "int32",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "y",
"type": "int32",
"tag": 2,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "label",
"type": "string",
"tag": 3,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
]
},
{
"name": "Line",
"enums": [],
"extends": [],
"options": {},
"extensions": null,
"messages": [],
"fields": [
{
"name": "start",
"type": "Point",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "end",
"type": "Point",
"tag": 2,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "label",
"type": "string",
"tag": 3,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
]
},
{
"name": "A",
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [],
"extensions": null
}
],
"options":{}
}

View File

@@ -0,0 +1,19 @@
//Single-line comment
message Point {
required int32 x = 1;
required int32 y = 2;
optional string label = 3;
}
/*Multi-line comment*/
message Line {/*
*/required Point start = 1;
required Point end = 2;
optional string label = 3;
}
/**
* Doxygen-style comment
**/
message A {
}//Comment after closing brace of last message

View File

@@ -0,0 +1,125 @@
{
"syntax": 3,
"package": "tutorial",
"imports": [],
"enums": [],
"messages": [{
"name": "Person",
"options": {},
"enums": [{
"name": "PhoneType",
"values": {
"MOBILE": {
"value": 0,
"options": {
"some_enum_option": "true"
}
},
"HOME": {
"value": 1,
"options": {}
},
"WORK": {
"value": 2,
"options": {}
}
},
"options": {
"allow_alias": true,
"custom_option": true
}
}],
"extends": [],
"messages": [{
"name": "PhoneNumber",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [{
"name": "number",
"type": "string",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
}, {
"name": "type",
"type": "PhoneType",
"tag": 2,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {
"default": "HOME"
}
}],
"extensions": null
}],
"fields": [{
"name": "name",
"type": "string",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
}, {
"name": "id",
"type": "int32",
"tag": 2,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
}, {
"name": "email",
"type": "string",
"tag": 3,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}, {
"name": "phone",
"type": "PhoneNumber",
"tag": 4,
"map": null,
"oneof": null,
"required": false,
"repeated": true,
"options": {}
}],
"extensions": null
}, {
"name": "AddressBook",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [{
"name": "person",
"type": "Person",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": true,
"options": {}
}],
"extensions": null
}],
"options": {
"java_package": "com.mafintosh.generated",
"java_outer_classname": "Example",
"java_generate_equals_and_hash": true,
"optimize_for": "SPEED"
},
"extends": []
}

View File

@@ -0,0 +1,30 @@
package tutorial;
option java_package = "com.mafintosh.generated";
option java_outer_classname = "Example";
option java_generate_equals_and_hash = true;
option optimize_for = SPEED;
message Person {
enum PhoneType {
option allow_alias = true;
option custom_option = true;
MOBILE = 0 [some_enum_option = true];
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
required string name = 1;
required int32 id = 2;
optional string email = 3;
repeated PhoneNumber phone = 4;
}
message AddressBook {
repeated Person person = 1;
}

View File

@@ -0,0 +1,42 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"messages": [{
"name": "Person",
"enums": [{
"name": "PhoneType",
"values": {
"MOBILE": {
"value": 0,
"options": {
"enum_value_is_deprecated": "true",
"some_second_option": "\"value1, value2, value3\"",
"some_third_option": "'[value1, value2, value3]'"
}
},
"HOME": {
"value": 1,
"options": {
"enum_value_is_deprecated": "true"
}
},
"WORK": {
"value": 2,
"options": {}
}
},
"options": {
"allow_alias": true
}
}],
"extends": [],
"messages": [],
"options": {},
"fields": [],
"extensions": null
}],
"options": {},
"extends": []
}

View File

@@ -0,0 +1,8 @@
message Person {
enum PhoneType {
option allow_alias = true;
MOBILE = 0 [(enum_value_is_deprecated) = true, (some_second_option) = "value1, value2, value3", (some_third_option) = '[value1, value2, value3]'];
HOME = 1 [(enum_value_is_deprecated) = true];
WORK = 2;
}
}

View File

@@ -0,0 +1,32 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"messages": [
{
"name": "Event",
"enums": [],
"options": {},
"extends": [],
"messages": [],
"fields": [
{
"name": "id",
"type": "EntityId",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {
"tagger.tags": "\"a:'Hello, there', bson:\\\"_id,omitempty\\\"\""
}
}
],
"extensions": null
}
],
"options": {},
"extends": []
}

View File

@@ -0,0 +1,3 @@
message Event {
EntityId id = 1 [(tagger.tags) = "a:'Hello, there', bson:\"_id,omitempty\"" ];
}

View File

@@ -0,0 +1,167 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"messages": [
{
"name": "MsgNormal",
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [
{
"name": "field1",
"type": "int32",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "field2",
"type": "string",
"tag": 2,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
},
{
"name": "field3",
"type": "int32",
"tag": 3,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "exField1",
"type": "int32",
"tag": 101,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
},
{
"name": "exField2",
"type": "string",
"tag": 102,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
},
{
"name": "MsgExtend",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "field1",
"type": "int32",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "field2",
"type": "string",
"tag": 2,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
},
{
"name": "field3",
"type": "int32",
"tag": 3,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "exField1",
"type": "int32",
"tag": 101,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
},
{
"name": "exField2",
"type": "string",
"tag": 102,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": {
"from": 100,
"to": 200
}
}
],
"options": {},
"extends": [
{
"name": "MsgExtend",
"message": {
"name": "MsgExtend",
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [
{
"name": "exField1",
"type": "int32",
"tag": 101,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
},
{
"name": "exField2",
"type": "string",
"tag": 102,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
}
]
}

View File

@@ -0,0 +1,19 @@
message MsgNormal {
required int32 field1 = 1;
optional string field2 = 2;
required int32 field3 = 3;
optional int32 exField1 = 101;
optional string exField2 = 102;
}
message MsgExtend {
required int32 field1 = 1;
optional string field2 = 2;
required int32 field3 = 3;
extensions 100 to 200;
}
extend MsgExtend {
optional int32 exField1 = 101;
optional string exField2 = 102;
}

View File

@@ -0,0 +1,30 @@
{
"syntax": 3,
"package": null,
"imports": ["./result.proto", "./other_result.proto"],
"enums": [],
"extends": [],
"messages": [
{
"name": "SearchResponse",
"extensions": null,
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [
{
"name": "result",
"type": "Result",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": true,
"options": {}
}
]
}
],
"options": {}
}

View File

@@ -0,0 +1,6 @@
import "./result.proto";
import "./other_result.proto";
message SearchResponse {
repeated Result result = 1;
}

View File

@@ -0,0 +1,33 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"messages": [
{
"name": "Data",
"enums": [],
"options": {},
"extends": [],
"messages": [],
"fields": [
{
"name": "data",
"type": "map",
"map": {
"from": "string",
"to": "bytes"
},
"oneof": null,
"tag": 1,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
],
"options": {},
"extends": []
}

View File

@@ -0,0 +1,3 @@
message Data {
map<string,bytes> data = 1;
}

View File

@@ -0,0 +1,8 @@
message wallet {
optional int32 dollars;
optional int32 pesos;
}
message traveller {
required wallet wallet;
}

View File

@@ -0,0 +1,41 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"messages": [
{
"name": "SampleMessage",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "name",
"type": "string",
"tag": 4,
"map": null,
"oneof": "test_oneof",
"required": false,
"repeated": false,
"options": {}
},
{
"name": "sub_message",
"type": "SubMessage",
"tag": 9,
"map": null,
"oneof": "test_oneof",
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
],
"options": {},
"extends": []
}

View File

@@ -0,0 +1,6 @@
message SampleMessage {
oneof test_oneof {
string name = 4;
SubMessage sub_message = 9;
}
}

View File

@@ -0,0 +1,364 @@
{
"syntax": 3,
"package": null,
"imports": [
"google/protobuf/descriptor.proto"
],
"enums": [
{
"name": "MyEnum",
"values": {
"FOO": {
"value": 1,
"options": {
"my_enum_value_option": "321"
}
},
"BAR": {
"value": 2,
"options": {}
}
},
"options": {
"my_enum_option": true
}
}
],
"messages": [
{
"name": "MyMessage",
"enums": [],
"extends": [],
"messages": [],
"options": {
"my_message_option": "1234"
},
"fields": [
{
"name": "foo",
"type": "int32",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {
"my_field_option": "4.5"
}
},
{
"name": "bar",
"type": "string",
"tag": 2,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
},
{
"name": "RequestType",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [],
"extensions": null
},
{
"name": "ResponseType",
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [],
"extensions": null
},
{
"name": "FooOptions",
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [
{
"name": "opt1",
"type": "int32",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
},
{
"name": "opt2",
"type": "string",
"tag": 2,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
},
{
"name": "Bar",
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [
{
"name": "a",
"type": "int32",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {
"foo_options": {
"opt1": "123",
"opt2": "\"baz\""
}
}
},
{
"name": "b",
"type": "int32",
"tag": 2,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {
"foo_options": {
"opt1": "123",
"opt2": "\"baz\""
}
}
}
],
"extensions": null
}
],
"options": {
"my_file_option": "Hello world!"
},
"extends": [
{
"name": "google.protobuf.FileOptions",
"message": {
"name": "google.protobuf.FileOptions",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "my_file_option",
"type": "string",
"tag": 50000,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
},
{
"name": "google.protobuf.MessageOptions",
"message": {
"name": "google.protobuf.MessageOptions",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "my_message_option",
"type": "int32",
"tag": 50001,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
},
{
"name": "google.protobuf.FieldOptions",
"message": {
"name": "google.protobuf.FieldOptions",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "my_field_option",
"type": "float",
"tag": 50002,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
},
{
"name": "google.protobuf.EnumOptions",
"message": {
"name": "google.protobuf.EnumOptions",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "my_enum_option",
"type": "bool",
"tag": 50003,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
},
{
"name": "google.protobuf.EnumValueOptions",
"message": {
"name": "google.protobuf.EnumValueOptions",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "my_enum_value_option",
"type": "uint32",
"tag": 50004,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
},
{
"name": "google.protobuf.ServiceOptions",
"message": {
"name": "google.protobuf.ServiceOptions",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "my_service_option",
"type": "MyEnum",
"tag": 50005,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
},
{
"name": "google.protobuf.MethodOptions",
"message": {
"name": "google.protobuf.MethodOptions",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "my_method_option",
"type": "MyMessage",
"tag": 50006,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
},
{
"name": "google.protobuf.FieldOptions",
"message": {
"name": "google.protobuf.FieldOptions",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "foo_options",
"type": "FooOptions",
"tag": 1234,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
],
"extensions": null
}
}
],
"services": [
{
"name": "MyService",
"methods": [
{
"name": "MyMethod",
"input_type": "RequestType",
"output_type": "ResponseType",
"client_streaming": false,
"server_streaming": false,
"options": {
"my_method_option.foo": "567",
"my_method_option.bar": "Some string"
}
}
],
"options": {
"my_service_option": "FOO",
"my_service_option_map": {
"foo": "bar"
}
}
}
]
}

View File

@@ -0,0 +1,72 @@
import "google/protobuf/descriptor.proto";
extend google.protobuf.FileOptions {
optional string my_file_option = 50000;
}
extend google.protobuf.MessageOptions {
optional int32 my_message_option = 50001;
}
extend google.protobuf.FieldOptions {
optional float my_field_option = 50002;
}
extend google.protobuf.EnumOptions {
optional bool my_enum_option = 50003;
}
extend google.protobuf.EnumValueOptions {
optional uint32 my_enum_value_option = 50004;
}
extend google.protobuf.ServiceOptions {
optional MyEnum my_service_option = 50005;
}
extend google.protobuf.MethodOptions {
optional MyMessage my_method_option = 50006;
}
option (my_file_option) = "Hello world!";
message MyMessage {
option (my_message_option) = 1234;
optional int32 foo = 1 [(my_field_option) = 4.5];
optional string bar = 2;
}
enum MyEnum {
option (my_enum_option) = true;
FOO = 1 [(my_enum_value_option) = 321];
BAR = 2;
}
message RequestType {}
message ResponseType {}
service MyService {
option (my_service_option) = FOO;
option (my_service_option_map) = {
foo: "bar";
};
rpc MyMethod(RequestType) returns(ResponseType) {
// Note: my_method_option has type MyMessage. We can set each field
// within it using a separate "option" line.
option (my_method_option).foo = 567;
option (my_method_option).bar = "Some string";
}
}
message FooOptions {
optional int32 opt1 = 1;
optional string opt2 = 2;
}
extend google.protobuf.FieldOptions {
optional FooOptions foo_options = 1234;
}
// usage:
message Bar {
optional int32 a = 1 [(foo_options).opt1 = 123, (foo_options).opt2 = "baz"];
// alternative aggregate syntax (uses TextFormat):
optional int32 b = 2 [(foo_options) = { opt1: 123 opt2: "baz" }];
}

View File

@@ -0,0 +1,47 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"messages": [{
"name": "OptionFields",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [{
"name": "type",
"type": "string",
"tag": 2,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {
"mylist": "\"some,values,[here]\""
}
}],
"extensions": null
}, {
"name": "MoreOptionFields",
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [{
"name": "values",
"type": "string",
"tag": 3,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {
"mylist2": "'[more, values], [here]'"
}
}],
"extensions": null
}],
"options": {},
"extends": []
}

View File

@@ -0,0 +1,8 @@
message OptionFields {
optional string type = 2 [mylist = "some,values,[here]"];
}
message MoreOptionFields {
optional string values = 3 [mylist2 = '[more, values], [here]'];
}

View File

@@ -0,0 +1,8 @@
message deviceTrajectory {
required bytes dates = 1 [packed=true];
required bytes signal_strengths = 2 [packed=true];
}
message trajectories {
repeated deviceTrajectory trajectories = 1 [packed=true];
}

View File

@@ -0,0 +1,55 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [
{
"name": "ReservedEnum",
"values": {
"x": {
"value": 1,
"options": []
},
"y": {
"value": 10,
"options": []
}
},
"options": {}
}
],
"messages": [
{
"name": "Reserved",
"extensions": null,
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "x",
"type": "string",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
},
{
"name": "y",
"type": "string",
"tag": 10,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
]
}
],
"options": {},
"extends": []
}

View File

@@ -0,0 +1,17 @@
syntax = "proto3";
message Reserved {
string x = 1;
reserved 2, 3;
reserved 5 to 9;
reserved "foo", "bar";
string y = 10;
}
enum ReservedEnum {
x = 1;
reserved 2, 3;
reserved 5 to 9;
reserved "foo", "bar";
y = 10;
}

View File

@@ -0,0 +1,30 @@
{
"syntax": 3,
"package": null,
"imports": ["./result.proto"],
"enums": [],
"extends": [],
"messages": [
{
"name": "SearchResponse",
"extensions": null,
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [
{
"name": "result",
"type": "Result",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": true,
"options": {}
}
]
}
],
"options":{}
}

View File

@@ -0,0 +1,5 @@
import "./result.proto";
message SearchResponse {
repeated Result result = 1;
}

View File

@@ -0,0 +1,108 @@
{
"syntax": 3,
"package": null,
"imports": [],
"enums": [],
"extends": [],
"messages": [
{
"name": "HelloRequest",
"extensions": null,
"enums": [],
"extends": [],
"options": {},
"messages": [],
"fields": [
{
"name": "greeting",
"type": "string",
"tag": 1,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
]
},
{
"name": "HelloResponse",
"extensions": null,
"enums": [],
"extends": [],
"messages": [],
"options": {},
"fields": [
{
"name": "reply",
"type": "string",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
}
]
}
],
"services": [
{
"name": "HelloService",
"methods": [
{
"name": "SayHello",
"input_type": "HelloRequest",
"output_type": "HelloResponse",
"client_streaming": false,
"server_streaming": false,
"options": {
"google.api.http": {
"get": "/v1/say-hello/echo/{greeting}",
"additional_bindings": [
{
"post": "/v2/say-hello",
"body": "greeting"
},
{
"get": "/v2/say-hello"
}
]
}
}
},
{
"name": "LotsOfReplies",
"input_type": "HelloRequest",
"output_type": "HelloResponse",
"client_streaming": false,
"server_streaming": true,
"options": {}
},
{
"name": "LotsOfGreetings",
"input_type": "HelloRequest",
"output_type": "HelloResponse",
"client_streaming": true,
"server_streaming": false,
"options": {
"google.api.http": {
"post": "/v1/lots-of-greetings",
"body": "*"
}
}
},
{
"name": "BidiHello",
"input_type": "HelloRequest",
"output_type": "HelloResponse",
"client_streaming": true,
"server_streaming": true,
"options": {}
}
],
"options": {}
}
],
"options": {}
}

View File

@@ -0,0 +1,30 @@
message HelloRequest {
optional string greeting = 1;
}
message HelloResponse {
required string reply = 1;
}
service HelloService {
rpc SayHello(HelloRequest) returns (HelloResponse) {
option (google.api.http) = {
get: "/v1/say-hello/echo/{greeting}"
additional_bindings {
post: "/v2/say-hello"
body: "greeting"
}
additional_bindings {
get: "/v2/say-hello"
}
};
}
rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse);
rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {
option (google.api.http) = {
post: "/v1/lots-of-greetings"
body: "*"
};
}
rpc BidiHello(stream HelloRequest) returns (stream HelloResponse);
}

View File

@@ -0,0 +1,35 @@
message EnumCarrying{
enum E{
A = 0;
B = 1;
}
}
message ValidPacked {
// varint wire types
repeated int32 f1 = 1 [packed = true];
repeated int64 f2 = 2 [packed = true];
repeated uint32 f3 = 3 [packed = true];
repeated uint64 f4 = 4 [packed = true];
repeated sint32 f5 = 5 [packed = true];
repeated sint64 f6 = 6 [packed = true];
repeated bool f7 = 7 [packed = true];
enum Corpus {
UNIVERSAL = 0;
WEB = 1;
}
repeated Corpus f8 = 8 [packed = true];
repeated EnumCarrying.E f9 = 9 [packed = true];
// 64-bit wire types
repeated fixed64 f10 = 10 [packed = true];
repeated sfixed64 f11 = 11 [packed = true];
repeated double f12 = 12 [packed = true];
// 32-bit wire types
repeated fixed32 f13 = 13 [packed = true];
repeated sfixed32 f14 = 14 [packed = true];
repeated float f15 = 15 [packed = true];
}

View File

@@ -0,0 +1,90 @@
{
"syntax": 2,
"package": null,
"imports": [],
"enums": [],
"extends": [],
"messages": [
{
"name": "Point",
"enums": [],
"extends": [],
"messages": [],
"extensions": null,
"options": {},
"fields": [
{
"name": "x",
"type": "int32",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "y",
"type": "int32",
"tag": 2,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "label",
"type": "string",
"tag": 3,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
]
},
{
"name": "Line",
"enums": [],
"extends": [],
"extensions": null,
"options": {},
"messages": [],
"fields": [
{
"name": "start",
"type": "Point",
"tag": 1,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "end",
"type": "Point",
"tag": 2,
"map": null,
"oneof": null,
"required": true,
"repeated": false,
"options": {}
},
{
"name": "label",
"type": "string",
"tag": 3,
"map": null,
"oneof": null,
"required": false,
"repeated": false,
"options": {}
}
]
}
],
"options":{}
}

View File

@@ -0,0 +1,13 @@
syntax = "proto2";
message Point {
required int32 x = 1;
required int32 y = 2;
optional string label = 3;
}
message Line {
required Point start = 1;
required Point end = 2;
optional string label = 3;
}