grpc-tools 1.34.0 → 1.42.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/bin/x86-linux/google/protobuf/any.proto +6 -3
  3. data/bin/x86-linux/google/protobuf/api.proto +2 -4
  4. data/bin/x86-linux/google/protobuf/compiler/plugin.proto +6 -1
  5. data/bin/x86-linux/google/protobuf/descriptor.proto +11 -9
  6. data/bin/x86-linux/google/protobuf/duration.proto +1 -1
  7. data/bin/x86-linux/google/protobuf/empty.proto +1 -1
  8. data/bin/x86-linux/google/protobuf/field_mask.proto +1 -1
  9. data/bin/x86-linux/google/protobuf/source_context.proto +1 -1
  10. data/bin/x86-linux/google/protobuf/struct.proto +1 -1
  11. data/bin/x86-linux/google/protobuf/timestamp.proto +11 -2
  12. data/bin/x86-linux/google/protobuf/type.proto +2 -2
  13. data/bin/x86-linux/google/protobuf/wrappers.proto +1 -1
  14. data/bin/x86-linux/grpc_ruby_plugin +0 -0
  15. data/bin/x86-linux/protoc +0 -0
  16. data/bin/x86-windows/google/protobuf/any.proto +6 -3
  17. data/bin/x86-windows/google/protobuf/api.proto +2 -4
  18. data/bin/x86-windows/google/protobuf/compiler/plugin.proto +6 -1
  19. data/bin/x86-windows/google/protobuf/descriptor.proto +11 -9
  20. data/bin/x86-windows/google/protobuf/duration.proto +1 -1
  21. data/bin/x86-windows/google/protobuf/empty.proto +1 -1
  22. data/bin/x86-windows/google/protobuf/field_mask.proto +1 -1
  23. data/bin/x86-windows/google/protobuf/source_context.proto +1 -1
  24. data/bin/x86-windows/google/protobuf/struct.proto +1 -1
  25. data/bin/x86-windows/google/protobuf/timestamp.proto +11 -2
  26. data/bin/x86-windows/google/protobuf/type.proto +2 -2
  27. data/bin/x86-windows/google/protobuf/wrappers.proto +1 -1
  28. data/bin/x86-windows/grpc_ruby_plugin.exe +0 -0
  29. data/bin/x86-windows/protoc.exe +0 -0
  30. data/bin/x86_64-linux/google/protobuf/any.proto +6 -3
  31. data/bin/x86_64-linux/google/protobuf/api.proto +2 -4
  32. data/bin/x86_64-linux/google/protobuf/compiler/plugin.proto +6 -1
  33. data/bin/x86_64-linux/google/protobuf/descriptor.proto +11 -9
  34. data/bin/x86_64-linux/google/protobuf/duration.proto +1 -1
  35. data/bin/x86_64-linux/google/protobuf/empty.proto +1 -1
  36. data/bin/x86_64-linux/google/protobuf/field_mask.proto +1 -1
  37. data/bin/x86_64-linux/google/protobuf/source_context.proto +1 -1
  38. data/bin/x86_64-linux/google/protobuf/struct.proto +1 -1
  39. data/bin/x86_64-linux/google/protobuf/timestamp.proto +11 -2
  40. data/bin/x86_64-linux/google/protobuf/type.proto +2 -2
  41. data/bin/x86_64-linux/google/protobuf/wrappers.proto +1 -1
  42. data/bin/x86_64-linux/grpc_ruby_plugin +0 -0
  43. data/bin/x86_64-linux/protoc +0 -0
  44. data/bin/x86_64-macos/google/protobuf/any.proto +6 -3
  45. data/bin/x86_64-macos/google/protobuf/api.proto +2 -4
  46. data/bin/x86_64-macos/google/protobuf/compiler/plugin.proto +6 -1
  47. data/bin/x86_64-macos/google/protobuf/descriptor.proto +11 -9
  48. data/bin/x86_64-macos/google/protobuf/duration.proto +1 -1
  49. data/bin/x86_64-macos/google/protobuf/empty.proto +1 -1
  50. data/bin/x86_64-macos/google/protobuf/field_mask.proto +1 -1
  51. data/bin/x86_64-macos/google/protobuf/source_context.proto +1 -1
  52. data/bin/x86_64-macos/google/protobuf/struct.proto +1 -1
  53. data/bin/x86_64-macos/google/protobuf/timestamp.proto +11 -2
  54. data/bin/x86_64-macos/google/protobuf/type.proto +2 -2
  55. data/bin/x86_64-macos/google/protobuf/wrappers.proto +1 -1
  56. data/bin/x86_64-macos/grpc_ruby_plugin +0 -0
  57. data/bin/x86_64-macos/protoc +0 -0
  58. data/bin/x86_64-windows/google/protobuf/any.proto +6 -3
  59. data/bin/x86_64-windows/google/protobuf/api.proto +2 -4
  60. data/bin/x86_64-windows/google/protobuf/compiler/plugin.proto +6 -1
  61. data/bin/x86_64-windows/google/protobuf/descriptor.proto +11 -9
  62. data/bin/x86_64-windows/google/protobuf/duration.proto +1 -1
  63. data/bin/x86_64-windows/google/protobuf/empty.proto +1 -1
  64. data/bin/x86_64-windows/google/protobuf/field_mask.proto +1 -1
  65. data/bin/x86_64-windows/google/protobuf/source_context.proto +1 -1
  66. data/bin/x86_64-windows/google/protobuf/struct.proto +1 -1
  67. data/bin/x86_64-windows/google/protobuf/timestamp.proto +11 -2
  68. data/bin/x86_64-windows/google/protobuf/type.proto +2 -2
  69. data/bin/x86_64-windows/google/protobuf/wrappers.proto +1 -1
  70. data/bin/x86_64-windows/grpc_ruby_plugin.exe +0 -0
  71. data/bin/x86_64-windows/protoc.exe +0 -0
  72. data/platform_check.rb +6 -1
  73. data/version.rb +1 -1
  74. metadata +2 -16
  75. data/bin/x86-macos/google/protobuf/any.proto +0 -155
  76. data/bin/x86-macos/google/protobuf/api.proto +0 -210
  77. data/bin/x86-macos/google/protobuf/compiler/plugin.proto +0 -178
  78. data/bin/x86-macos/google/protobuf/descriptor.proto +0 -909
  79. data/bin/x86-macos/google/protobuf/duration.proto +0 -116
  80. data/bin/x86-macos/google/protobuf/empty.proto +0 -52
  81. data/bin/x86-macos/google/protobuf/field_mask.proto +0 -245
  82. data/bin/x86-macos/google/protobuf/source_context.proto +0 -48
  83. data/bin/x86-macos/google/protobuf/struct.proto +0 -95
  84. data/bin/x86-macos/google/protobuf/timestamp.proto +0 -138
  85. data/bin/x86-macos/google/protobuf/type.proto +0 -187
  86. data/bin/x86-macos/google/protobuf/wrappers.proto +0 -123
  87. data/bin/x86-macos/grpc_ruby_plugin +0 -0
  88. data/bin/x86-macos/protoc +0 -0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.34.0
4
+ version: 1.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - grpc Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-02 00:00:00.000000000 Z
11
+ date: 2021-11-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: protoc and the Ruby gRPC protoc plugin
14
14
  email: grpc-io@googlegroups.com
@@ -35,20 +35,6 @@ files:
35
35
  - bin/x86-linux/google/protobuf/wrappers.proto
36
36
  - bin/x86-linux/grpc_ruby_plugin
37
37
  - bin/x86-linux/protoc
38
- - bin/x86-macos/google/protobuf/any.proto
39
- - bin/x86-macos/google/protobuf/api.proto
40
- - bin/x86-macos/google/protobuf/compiler/plugin.proto
41
- - bin/x86-macos/google/protobuf/descriptor.proto
42
- - bin/x86-macos/google/protobuf/duration.proto
43
- - bin/x86-macos/google/protobuf/empty.proto
44
- - bin/x86-macos/google/protobuf/field_mask.proto
45
- - bin/x86-macos/google/protobuf/source_context.proto
46
- - bin/x86-macos/google/protobuf/struct.proto
47
- - bin/x86-macos/google/protobuf/timestamp.proto
48
- - bin/x86-macos/google/protobuf/type.proto
49
- - bin/x86-macos/google/protobuf/wrappers.proto
50
- - bin/x86-macos/grpc_ruby_plugin
51
- - bin/x86-macos/protoc
52
38
  - bin/x86-windows/google/protobuf/any.proto
53
39
  - bin/x86-windows/google/protobuf/api.proto
54
40
  - bin/x86-windows/google/protobuf/compiler/plugin.proto
@@ -1,155 +0,0 @@
1
- // Protocol Buffers - Google's data interchange format
2
- // Copyright 2008 Google Inc. All rights reserved.
3
- // https://developers.google.com/protocol-buffers/
4
- //
5
- // Redistribution and use in source and binary forms, with or without
6
- // modification, are permitted provided that the following conditions are
7
- // met:
8
- //
9
- // * Redistributions of source code must retain the above copyright
10
- // notice, this list of conditions and the following disclaimer.
11
- // * Redistributions in binary form must reproduce the above
12
- // copyright notice, this list of conditions and the following disclaimer
13
- // in the documentation and/or other materials provided with the
14
- // distribution.
15
- // * Neither the name of Google Inc. nor the names of its
16
- // contributors may be used to endorse or promote products derived from
17
- // this software without specific prior written permission.
18
- //
19
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
-
31
- syntax = "proto3";
32
-
33
- package google.protobuf;
34
-
35
- option csharp_namespace = "Google.Protobuf.WellKnownTypes";
36
- option go_package = "github.com/golang/protobuf/ptypes/any";
37
- option java_package = "com.google.protobuf";
38
- option java_outer_classname = "AnyProto";
39
- option java_multiple_files = true;
40
- option objc_class_prefix = "GPB";
41
-
42
- // `Any` contains an arbitrary serialized protocol buffer message along with a
43
- // URL that describes the type of the serialized message.
44
- //
45
- // Protobuf library provides support to pack/unpack Any values in the form
46
- // of utility functions or additional generated methods of the Any type.
47
- //
48
- // Example 1: Pack and unpack a message in C++.
49
- //
50
- // Foo foo = ...;
51
- // Any any;
52
- // any.PackFrom(foo);
53
- // ...
54
- // if (any.UnpackTo(&foo)) {
55
- // ...
56
- // }
57
- //
58
- // Example 2: Pack and unpack a message in Java.
59
- //
60
- // Foo foo = ...;
61
- // Any any = Any.pack(foo);
62
- // ...
63
- // if (any.is(Foo.class)) {
64
- // foo = any.unpack(Foo.class);
65
- // }
66
- //
67
- // Example 3: Pack and unpack a message in Python.
68
- //
69
- // foo = Foo(...)
70
- // any = Any()
71
- // any.Pack(foo)
72
- // ...
73
- // if any.Is(Foo.DESCRIPTOR):
74
- // any.Unpack(foo)
75
- // ...
76
- //
77
- // Example 4: Pack and unpack a message in Go
78
- //
79
- // foo := &pb.Foo{...}
80
- // any, err := ptypes.MarshalAny(foo)
81
- // ...
82
- // foo := &pb.Foo{}
83
- // if err := ptypes.UnmarshalAny(any, foo); err != nil {
84
- // ...
85
- // }
86
- //
87
- // The pack methods provided by protobuf library will by default use
88
- // 'type.googleapis.com/full.type.name' as the type URL and the unpack
89
- // methods only use the fully qualified type name after the last '/'
90
- // in the type URL, for example "foo.bar.com/x/y.z" will yield type
91
- // name "y.z".
92
- //
93
- //
94
- // JSON
95
- // ====
96
- // The JSON representation of an `Any` value uses the regular
97
- // representation of the deserialized, embedded message, with an
98
- // additional field `@type` which contains the type URL. Example:
99
- //
100
- // package google.profile;
101
- // message Person {
102
- // string first_name = 1;
103
- // string last_name = 2;
104
- // }
105
- //
106
- // {
107
- // "@type": "type.googleapis.com/google.profile.Person",
108
- // "firstName": <string>,
109
- // "lastName": <string>
110
- // }
111
- //
112
- // If the embedded message type is well-known and has a custom JSON
113
- // representation, that representation will be embedded adding a field
114
- // `value` which holds the custom JSON in addition to the `@type`
115
- // field. Example (for message [google.protobuf.Duration][]):
116
- //
117
- // {
118
- // "@type": "type.googleapis.com/google.protobuf.Duration",
119
- // "value": "1.212s"
120
- // }
121
- //
122
- message Any {
123
- // A URL/resource name that uniquely identifies the type of the serialized
124
- // protocol buffer message. This string must contain at least
125
- // one "/" character. The last segment of the URL's path must represent
126
- // the fully qualified name of the type (as in
127
- // `path/google.protobuf.Duration`). The name should be in a canonical form
128
- // (e.g., leading "." is not accepted).
129
- //
130
- // In practice, teams usually precompile into the binary all types that they
131
- // expect it to use in the context of Any. However, for URLs which use the
132
- // scheme `http`, `https`, or no scheme, one can optionally set up a type
133
- // server that maps type URLs to message definitions as follows:
134
- //
135
- // * If no scheme is provided, `https` is assumed.
136
- // * An HTTP GET on the URL must yield a [google.protobuf.Type][]
137
- // value in binary format, or produce an error.
138
- // * Applications are allowed to cache lookup results based on the
139
- // URL, or have them precompiled into a binary to avoid any
140
- // lookup. Therefore, binary compatibility needs to be preserved
141
- // on changes to types. (Use versioned type names to manage
142
- // breaking changes.)
143
- //
144
- // Note: this functionality is not currently available in the official
145
- // protobuf release, and it is not used for type URLs beginning with
146
- // type.googleapis.com.
147
- //
148
- // Schemes other than `http`, `https` (or the empty scheme) might be
149
- // used with implementation specific semantics.
150
- //
151
- string type_url = 1;
152
-
153
- // Must be a valid serialized protocol buffer of the above specified type.
154
- bytes value = 2;
155
- }
@@ -1,210 +0,0 @@
1
- // Protocol Buffers - Google's data interchange format
2
- // Copyright 2008 Google Inc. All rights reserved.
3
- // https://developers.google.com/protocol-buffers/
4
- //
5
- // Redistribution and use in source and binary forms, with or without
6
- // modification, are permitted provided that the following conditions are
7
- // met:
8
- //
9
- // * Redistributions of source code must retain the above copyright
10
- // notice, this list of conditions and the following disclaimer.
11
- // * Redistributions in binary form must reproduce the above
12
- // copyright notice, this list of conditions and the following disclaimer
13
- // in the documentation and/or other materials provided with the
14
- // distribution.
15
- // * Neither the name of Google Inc. nor the names of its
16
- // contributors may be used to endorse or promote products derived from
17
- // this software without specific prior written permission.
18
- //
19
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
-
31
- syntax = "proto3";
32
-
33
- package google.protobuf;
34
-
35
- import "google/protobuf/source_context.proto";
36
- import "google/protobuf/type.proto";
37
-
38
- option csharp_namespace = "Google.Protobuf.WellKnownTypes";
39
- option java_package = "com.google.protobuf";
40
- option java_outer_classname = "ApiProto";
41
- option java_multiple_files = true;
42
- option objc_class_prefix = "GPB";
43
- option go_package = "google.golang.org/genproto/protobuf/api;api";
44
-
45
- // Api is a light-weight descriptor for an API Interface.
46
- //
47
- // Interfaces are also described as "protocol buffer services" in some contexts,
48
- // such as by the "service" keyword in a .proto file, but they are different
49
- // from API Services, which represent a concrete implementation of an interface
50
- // as opposed to simply a description of methods and bindings. They are also
51
- // sometimes simply referred to as "APIs" in other contexts, such as the name of
52
- // this message itself. See https://cloud.google.com/apis/design/glossary for
53
- // detailed terminology.
54
- message Api {
55
-
56
- // The fully qualified name of this interface, including package name
57
- // followed by the interface's simple name.
58
- string name = 1;
59
-
60
- // The methods of this interface, in unspecified order.
61
- repeated Method methods = 2;
62
-
63
- // Any metadata attached to the interface.
64
- repeated Option options = 3;
65
-
66
- // A version string for this interface. If specified, must have the form
67
- // `major-version.minor-version`, as in `1.10`. If the minor version is
68
- // omitted, it defaults to zero. If the entire version field is empty, the
69
- // major version is derived from the package name, as outlined below. If the
70
- // field is not empty, the version in the package name will be verified to be
71
- // consistent with what is provided here.
72
- //
73
- // The versioning schema uses [semantic
74
- // versioning](http://semver.org) where the major version number
75
- // indicates a breaking change and the minor version an additive,
76
- // non-breaking change. Both version numbers are signals to users
77
- // what to expect from different versions, and should be carefully
78
- // chosen based on the product plan.
79
- //
80
- // The major version is also reflected in the package name of the
81
- // interface, which must end in `v<major-version>`, as in
82
- // `google.feature.v1`. For major versions 0 and 1, the suffix can
83
- // be omitted. Zero major versions must only be used for
84
- // experimental, non-GA interfaces.
85
- //
86
- //
87
- string version = 4;
88
-
89
- // Source context for the protocol buffer service represented by this
90
- // message.
91
- SourceContext source_context = 5;
92
-
93
- // Included interfaces. See [Mixin][].
94
- repeated Mixin mixins = 6;
95
-
96
- // The source syntax of the service.
97
- Syntax syntax = 7;
98
- }
99
-
100
- // Method represents a method of an API interface.
101
- message Method {
102
-
103
- // The simple name of this method.
104
- string name = 1;
105
-
106
- // A URL of the input message type.
107
- string request_type_url = 2;
108
-
109
- // If true, the request is streamed.
110
- bool request_streaming = 3;
111
-
112
- // The URL of the output message type.
113
- string response_type_url = 4;
114
-
115
- // If true, the response is streamed.
116
- bool response_streaming = 5;
117
-
118
- // Any metadata attached to the method.
119
- repeated Option options = 6;
120
-
121
- // The source syntax of this method.
122
- Syntax syntax = 7;
123
- }
124
-
125
- // Declares an API Interface to be included in this interface. The including
126
- // interface must redeclare all the methods from the included interface, but
127
- // documentation and options are inherited as follows:
128
- //
129
- // - If after comment and whitespace stripping, the documentation
130
- // string of the redeclared method is empty, it will be inherited
131
- // from the original method.
132
- //
133
- // - Each annotation belonging to the service config (http,
134
- // visibility) which is not set in the redeclared method will be
135
- // inherited.
136
- //
137
- // - If an http annotation is inherited, the path pattern will be
138
- // modified as follows. Any version prefix will be replaced by the
139
- // version of the including interface plus the [root][] path if
140
- // specified.
141
- //
142
- // Example of a simple mixin:
143
- //
144
- // package google.acl.v1;
145
- // service AccessControl {
146
- // // Get the underlying ACL object.
147
- // rpc GetAcl(GetAclRequest) returns (Acl) {
148
- // option (google.api.http).get = "/v1/{resource=**}:getAcl";
149
- // }
150
- // }
151
- //
152
- // package google.storage.v2;
153
- // service Storage {
154
- // rpc GetAcl(GetAclRequest) returns (Acl);
155
- //
156
- // // Get a data record.
157
- // rpc GetData(GetDataRequest) returns (Data) {
158
- // option (google.api.http).get = "/v2/{resource=**}";
159
- // }
160
- // }
161
- //
162
- // Example of a mixin configuration:
163
- //
164
- // apis:
165
- // - name: google.storage.v2.Storage
166
- // mixins:
167
- // - name: google.acl.v1.AccessControl
168
- //
169
- // The mixin construct implies that all methods in `AccessControl` are
170
- // also declared with same name and request/response types in
171
- // `Storage`. A documentation generator or annotation processor will
172
- // see the effective `Storage.GetAcl` method after inherting
173
- // documentation and annotations as follows:
174
- //
175
- // service Storage {
176
- // // Get the underlying ACL object.
177
- // rpc GetAcl(GetAclRequest) returns (Acl) {
178
- // option (google.api.http).get = "/v2/{resource=**}:getAcl";
179
- // }
180
- // ...
181
- // }
182
- //
183
- // Note how the version in the path pattern changed from `v1` to `v2`.
184
- //
185
- // If the `root` field in the mixin is specified, it should be a
186
- // relative path under which inherited HTTP paths are placed. Example:
187
- //
188
- // apis:
189
- // - name: google.storage.v2.Storage
190
- // mixins:
191
- // - name: google.acl.v1.AccessControl
192
- // root: acls
193
- //
194
- // This implies the following inherited HTTP annotation:
195
- //
196
- // service Storage {
197
- // // Get the underlying ACL object.
198
- // rpc GetAcl(GetAclRequest) returns (Acl) {
199
- // option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
200
- // }
201
- // ...
202
- // }
203
- message Mixin {
204
- // The fully qualified name of the interface which is included.
205
- string name = 1;
206
-
207
- // If non-empty specifies a path under which inherited HTTP paths
208
- // are rooted.
209
- string root = 2;
210
- }
@@ -1,178 +0,0 @@
1
- // Protocol Buffers - Google's data interchange format
2
- // Copyright 2008 Google Inc. All rights reserved.
3
- // https://developers.google.com/protocol-buffers/
4
- //
5
- // Redistribution and use in source and binary forms, with or without
6
- // modification, are permitted provided that the following conditions are
7
- // met:
8
- //
9
- // * Redistributions of source code must retain the above copyright
10
- // notice, this list of conditions and the following disclaimer.
11
- // * Redistributions in binary form must reproduce the above
12
- // copyright notice, this list of conditions and the following disclaimer
13
- // in the documentation and/or other materials provided with the
14
- // distribution.
15
- // * Neither the name of Google Inc. nor the names of its
16
- // contributors may be used to endorse or promote products derived from
17
- // this software without specific prior written permission.
18
- //
19
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
-
31
- // Author: kenton@google.com (Kenton Varda)
32
- //
33
- // WARNING: The plugin interface is currently EXPERIMENTAL and is subject to
34
- // change.
35
- //
36
- // protoc (aka the Protocol Compiler) can be extended via plugins. A plugin is
37
- // just a program that reads a CodeGeneratorRequest from stdin and writes a
38
- // CodeGeneratorResponse to stdout.
39
- //
40
- // Plugins written using C++ can use google/protobuf/compiler/plugin.h instead
41
- // of dealing with the raw protocol defined here.
42
- //
43
- // A plugin executable needs only to be placed somewhere in the path. The
44
- // plugin should be named "protoc-gen-$NAME", and will then be used when the
45
- // flag "--${NAME}_out" is passed to protoc.
46
-
47
- syntax = "proto2";
48
-
49
- package google.protobuf.compiler;
50
- option java_package = "com.google.protobuf.compiler";
51
- option java_outer_classname = "PluginProtos";
52
-
53
- option go_package = "github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go";
54
-
55
- import "google/protobuf/descriptor.proto";
56
-
57
- // The version number of protocol compiler.
58
- message Version {
59
- optional int32 major = 1;
60
- optional int32 minor = 2;
61
- optional int32 patch = 3;
62
- // A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
63
- // be empty for mainline stable releases.
64
- optional string suffix = 4;
65
- }
66
-
67
- // An encoded CodeGeneratorRequest is written to the plugin's stdin.
68
- message CodeGeneratorRequest {
69
- // The .proto files that were explicitly listed on the command-line. The
70
- // code generator should generate code only for these files. Each file's
71
- // descriptor will be included in proto_file, below.
72
- repeated string file_to_generate = 1;
73
-
74
- // The generator parameter passed on the command-line.
75
- optional string parameter = 2;
76
-
77
- // FileDescriptorProtos for all files in files_to_generate and everything
78
- // they import. The files will appear in topological order, so each file
79
- // appears before any file that imports it.
80
- //
81
- // protoc guarantees that all proto_files will be written after
82
- // the fields above, even though this is not technically guaranteed by the
83
- // protobuf wire format. This theoretically could allow a plugin to stream
84
- // in the FileDescriptorProtos and handle them one by one rather than read
85
- // the entire set into memory at once. However, as of this writing, this
86
- // is not similarly optimized on protoc's end -- it will store all fields in
87
- // memory at once before sending them to the plugin.
88
- //
89
- // Type names of fields and extensions in the FileDescriptorProto are always
90
- // fully qualified.
91
- repeated FileDescriptorProto proto_file = 15;
92
-
93
- // The version number of protocol compiler.
94
- optional Version compiler_version = 3;
95
-
96
- }
97
-
98
- // The plugin writes an encoded CodeGeneratorResponse to stdout.
99
- message CodeGeneratorResponse {
100
- // Error message. If non-empty, code generation failed. The plugin process
101
- // should exit with status code zero even if it reports an error in this way.
102
- //
103
- // This should be used to indicate errors in .proto files which prevent the
104
- // code generator from generating correct code. Errors which indicate a
105
- // problem in protoc itself -- such as the input CodeGeneratorRequest being
106
- // unparseable -- should be reported by writing a message to stderr and
107
- // exiting with a non-zero status code.
108
- optional string error = 1;
109
-
110
- // A bitmask of supported features that the code generator supports.
111
- // This is a bitwise "or" of values from the Feature enum.
112
- optional uint64 supported_features = 2;
113
-
114
- // Sync with code_generator.h.
115
- enum Feature {
116
- FEATURE_NONE = 0;
117
- FEATURE_PROTO3_OPTIONAL = 1;
118
- }
119
-
120
- // Represents a single generated file.
121
- message File {
122
- // The file name, relative to the output directory. The name must not
123
- // contain "." or ".." components and must be relative, not be absolute (so,
124
- // the file cannot lie outside the output directory). "/" must be used as
125
- // the path separator, not "\".
126
- //
127
- // If the name is omitted, the content will be appended to the previous
128
- // file. This allows the generator to break large files into small chunks,
129
- // and allows the generated text to be streamed back to protoc so that large
130
- // files need not reside completely in memory at one time. Note that as of
131
- // this writing protoc does not optimize for this -- it will read the entire
132
- // CodeGeneratorResponse before writing files to disk.
133
- optional string name = 1;
134
-
135
- // If non-empty, indicates that the named file should already exist, and the
136
- // content here is to be inserted into that file at a defined insertion
137
- // point. This feature allows a code generator to extend the output
138
- // produced by another code generator. The original generator may provide
139
- // insertion points by placing special annotations in the file that look
140
- // like:
141
- // @@protoc_insertion_point(NAME)
142
- // The annotation can have arbitrary text before and after it on the line,
143
- // which allows it to be placed in a comment. NAME should be replaced with
144
- // an identifier naming the point -- this is what other generators will use
145
- // as the insertion_point. Code inserted at this point will be placed
146
- // immediately above the line containing the insertion point (thus multiple
147
- // insertions to the same point will come out in the order they were added).
148
- // The double-@ is intended to make it unlikely that the generated code
149
- // could contain things that look like insertion points by accident.
150
- //
151
- // For example, the C++ code generator places the following line in the
152
- // .pb.h files that it generates:
153
- // // @@protoc_insertion_point(namespace_scope)
154
- // This line appears within the scope of the file's package namespace, but
155
- // outside of any particular class. Another plugin can then specify the
156
- // insertion_point "namespace_scope" to generate additional classes or
157
- // other declarations that should be placed in this scope.
158
- //
159
- // Note that if the line containing the insertion point begins with
160
- // whitespace, the same whitespace will be added to every line of the
161
- // inserted text. This is useful for languages like Python, where
162
- // indentation matters. In these languages, the insertion point comment
163
- // should be indented the same amount as any inserted code will need to be
164
- // in order to work correctly in that context.
165
- //
166
- // The code generator that generates the initial file and the one which
167
- // inserts into it must both run as part of a single invocation of protoc.
168
- // Code generators are executed in the order in which they appear on the
169
- // command line.
170
- //
171
- // If |insertion_point| is present, |name| must also be present.
172
- optional string insertion_point = 2;
173
-
174
- // The file contents.
175
- optional string content = 15;
176
- }
177
- repeated File file = 15;
178
- }