grpc-tools 1.56.2 → 1.64.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/x86-linux/google/protobuf/any.proto +2 -1
- data/bin/x86-linux/google/protobuf/compiler/plugin.proto +26 -26
- data/bin/x86-linux/google/protobuf/descriptor.proto +235 -44
- data/bin/x86-linux/grpc_ruby_plugin +0 -0
- data/bin/x86-linux/protoc +0 -0
- data/bin/x86-windows/google/protobuf/any.proto +2 -1
- data/bin/x86-windows/google/protobuf/compiler/plugin.proto +26 -26
- data/bin/x86-windows/google/protobuf/descriptor.proto +235 -44
- data/bin/x86-windows/grpc_ruby_plugin.exe +0 -0
- data/bin/x86-windows/protoc.exe +0 -0
- data/bin/x86_64-linux/google/protobuf/any.proto +2 -1
- data/bin/x86_64-linux/google/protobuf/compiler/plugin.proto +26 -26
- data/bin/x86_64-linux/google/protobuf/descriptor.proto +235 -44
- data/bin/x86_64-linux/grpc_ruby_plugin +0 -0
- data/bin/x86_64-linux/protoc +0 -0
- data/bin/x86_64-macos/google/protobuf/any.proto +2 -1
- data/bin/x86_64-macos/google/protobuf/compiler/plugin.proto +26 -26
- data/bin/x86_64-macos/google/protobuf/descriptor.proto +235 -44
- data/bin/x86_64-macos/grpc_ruby_plugin +0 -0
- data/bin/x86_64-macos/protoc +0 -0
- data/bin/x86_64-windows/google/protobuf/any.proto +2 -1
- data/bin/x86_64-windows/google/protobuf/compiler/plugin.proto +26 -26
- data/bin/x86_64-windows/google/protobuf/descriptor.proto +235 -44
- data/bin/x86_64-windows/grpc_ruby_plugin.exe +0 -0
- data/bin/x86_64-windows/protoc.exe +0 -0
- data/version.rb +1 -1
- metadata +2 -2
@@ -57,6 +57,38 @@ message FileDescriptorSet {
|
|
57
57
|
repeated FileDescriptorProto file = 1;
|
58
58
|
}
|
59
59
|
|
60
|
+
// The full set of known editions.
|
61
|
+
enum Edition {
|
62
|
+
// A placeholder for an unknown edition value.
|
63
|
+
EDITION_UNKNOWN = 0;
|
64
|
+
|
65
|
+
// Legacy syntax "editions". These pre-date editions, but behave much like
|
66
|
+
// distinct editions. These can't be used to specify the edition of proto
|
67
|
+
// files, but feature definitions must supply proto2/proto3 defaults for
|
68
|
+
// backwards compatibility.
|
69
|
+
EDITION_PROTO2 = 998;
|
70
|
+
EDITION_PROTO3 = 999;
|
71
|
+
|
72
|
+
// Editions that have been released. The specific values are arbitrary and
|
73
|
+
// should not be depended on, but they will always be time-ordered for easy
|
74
|
+
// comparison.
|
75
|
+
EDITION_2023 = 1000;
|
76
|
+
EDITION_2024 = 1001;
|
77
|
+
|
78
|
+
// Placeholder editions for testing feature resolution. These should not be
|
79
|
+
// used or relyed on outside of tests.
|
80
|
+
EDITION_1_TEST_ONLY = 1;
|
81
|
+
EDITION_2_TEST_ONLY = 2;
|
82
|
+
EDITION_99997_TEST_ONLY = 99997;
|
83
|
+
EDITION_99998_TEST_ONLY = 99998;
|
84
|
+
EDITION_99999_TEST_ONLY = 99999;
|
85
|
+
|
86
|
+
// Placeholder for specifying unbounded edition support. This should only
|
87
|
+
// ever be used by plugins that can expect to never require any changes to
|
88
|
+
// support a new edition.
|
89
|
+
EDITION_MAX = 0x7FFFFFFF;
|
90
|
+
}
|
91
|
+
|
60
92
|
// Describes a complete .proto file.
|
61
93
|
message FileDescriptorProto {
|
62
94
|
optional string name = 1; // file name, relative to root of source tree
|
@@ -90,8 +122,8 @@ message FileDescriptorProto {
|
|
90
122
|
// If `edition` is present, this value must be "editions".
|
91
123
|
optional string syntax = 12;
|
92
124
|
|
93
|
-
// The edition of the proto file
|
94
|
-
optional
|
125
|
+
// The edition of the proto file.
|
126
|
+
optional Edition edition = 14;
|
95
127
|
}
|
96
128
|
|
97
129
|
// Describes a message type.
|
@@ -146,9 +178,6 @@ message ExtensionRangeOptions {
|
|
146
178
|
// and enums.
|
147
179
|
optional string type = 3;
|
148
180
|
|
149
|
-
// Deprecated. Please use "repeated".
|
150
|
-
optional bool is_repeated = 4 [deprecated = true];
|
151
|
-
|
152
181
|
// If true, indicates that the number is reserved in the extension range,
|
153
182
|
// and any extension field with the number will fail to compile. Set this
|
154
183
|
// when a declared extension field is deleted.
|
@@ -157,14 +186,18 @@ message ExtensionRangeOptions {
|
|
157
186
|
// If true, indicates that the extension must be defined as repeated.
|
158
187
|
// Otherwise the extension must be defined as optional.
|
159
188
|
optional bool repeated = 6;
|
189
|
+
|
190
|
+
reserved 4; // removed is_repeated
|
160
191
|
}
|
161
192
|
|
162
|
-
//
|
163
|
-
//
|
164
|
-
//
|
165
|
-
// extension range into small ranges in generated binaries.
|
193
|
+
// For external users: DO NOT USE. We are in the process of open sourcing
|
194
|
+
// extension declaration and executing internal cleanups before it can be
|
195
|
+
// used externally.
|
166
196
|
repeated Declaration declaration = 2 [retention = RETENTION_SOURCE];
|
167
197
|
|
198
|
+
// Any features defined in the specific edition.
|
199
|
+
optional FeatureSet features = 50;
|
200
|
+
|
168
201
|
// The verification state of the extension range.
|
169
202
|
enum VerificationState {
|
170
203
|
// All the extensions of the range must be declared.
|
@@ -173,9 +206,10 @@ message ExtensionRangeOptions {
|
|
173
206
|
}
|
174
207
|
|
175
208
|
// The verification state of the range.
|
176
|
-
// TODO
|
209
|
+
// TODO: flip the default to DECLARATION once all empty ranges
|
177
210
|
// are marked as UNVERIFIED.
|
178
|
-
optional VerificationState verification = 3
|
211
|
+
optional VerificationState verification = 3
|
212
|
+
[default = UNVERIFIED, retention = RETENTION_SOURCE];
|
179
213
|
|
180
214
|
// Clients can define custom options in extensions of this message. See above.
|
181
215
|
extensions 1000 to max;
|
@@ -200,9 +234,10 @@ message FieldDescriptorProto {
|
|
200
234
|
TYPE_BOOL = 8;
|
201
235
|
TYPE_STRING = 9;
|
202
236
|
// Tag-delimited aggregate.
|
203
|
-
// Group type is deprecated and not supported
|
237
|
+
// Group type is deprecated and not supported after google.protobuf. However, Proto3
|
204
238
|
// implementations should still be able to parse the group wire format and
|
205
|
-
// treat group fields as unknown fields.
|
239
|
+
// treat group fields as unknown fields. In Editions, the group wire format
|
240
|
+
// can be enabled via the `message_encoding` feature.
|
206
241
|
TYPE_GROUP = 10;
|
207
242
|
TYPE_MESSAGE = 11; // Length-delimited aggregate.
|
208
243
|
|
@@ -219,8 +254,11 @@ message FieldDescriptorProto {
|
|
219
254
|
enum Label {
|
220
255
|
// 0 is reserved for errors
|
221
256
|
LABEL_OPTIONAL = 1;
|
222
|
-
LABEL_REQUIRED = 2;
|
223
257
|
LABEL_REPEATED = 3;
|
258
|
+
// The required label is only allowed in google.protobuf. In proto3 and Editions
|
259
|
+
// it's explicitly prohibited. In Editions, the `field_presence` feature
|
260
|
+
// can be used to get this behavior.
|
261
|
+
LABEL_REQUIRED = 2;
|
224
262
|
}
|
225
263
|
|
226
264
|
optional string name = 1;
|
@@ -263,12 +301,12 @@ message FieldDescriptorProto {
|
|
263
301
|
// If true, this is a proto3 "optional". When a proto3 field is optional, it
|
264
302
|
// tracks presence regardless of field type.
|
265
303
|
//
|
266
|
-
// When proto3_optional is true, this field must
|
267
|
-
//
|
268
|
-
//
|
269
|
-
//
|
270
|
-
//
|
271
|
-
//
|
304
|
+
// When proto3_optional is true, this field must belong to a oneof to signal
|
305
|
+
// to old proto3 clients that presence is tracked for this field. This oneof
|
306
|
+
// is known as a "synthetic" oneof, and this field must be its sole member
|
307
|
+
// (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
|
308
|
+
// exist in the descriptor only, and do not generate any API. Synthetic oneofs
|
309
|
+
// must be ordered after all "real" oneofs.
|
272
310
|
//
|
273
311
|
// For message fields, proto3_optional doesn't create any semantic change,
|
274
312
|
// since non-repeated message fields always track presence. However it still
|
@@ -447,7 +485,7 @@ message FileOptions {
|
|
447
485
|
optional bool cc_generic_services = 16 [default = false];
|
448
486
|
optional bool java_generic_services = 17 [default = false];
|
449
487
|
optional bool py_generic_services = 18 [default = false];
|
450
|
-
|
488
|
+
reserved 42; // removed php_generic_services
|
451
489
|
|
452
490
|
// Is this file deprecated?
|
453
491
|
// Depending on the target platform, this can emit Deprecated annotations
|
@@ -491,6 +529,9 @@ message FileOptions {
|
|
491
529
|
// determining the ruby package.
|
492
530
|
optional string ruby_package = 45;
|
493
531
|
|
532
|
+
// Any features defined in the specific edition.
|
533
|
+
optional FeatureSet features = 50;
|
534
|
+
|
494
535
|
// The parser stores options it doesn't recognize here.
|
495
536
|
// See the documentation for the "Options" section above.
|
496
537
|
repeated UninterpretedOption uninterpreted_option = 999;
|
@@ -536,10 +577,6 @@ message MessageOptions {
|
|
536
577
|
|
537
578
|
reserved 4, 5, 6;
|
538
579
|
|
539
|
-
// NOTE: Do not set the option in .proto files. Always use the maps syntax
|
540
|
-
// instead. The option should only be implicitly set by the proto compiler
|
541
|
-
// parser.
|
542
|
-
//
|
543
580
|
// Whether the message is an automatically generated map entry type for the
|
544
581
|
// maps field.
|
545
582
|
//
|
@@ -557,6 +594,10 @@ message MessageOptions {
|
|
557
594
|
// use a native map in the target language to hold the keys and values.
|
558
595
|
// The reflection APIs in such implementations still need to work as
|
559
596
|
// if the field is a repeated message field.
|
597
|
+
//
|
598
|
+
// NOTE: Do not set the option in .proto files. Always use the maps syntax
|
599
|
+
// instead. The option should only be implicitly set by the proto compiler
|
600
|
+
// parser.
|
560
601
|
optional bool map_entry = 7;
|
561
602
|
|
562
603
|
reserved 8; // javalite_serializable
|
@@ -570,10 +611,13 @@ message MessageOptions {
|
|
570
611
|
// This should only be used as a temporary measure against broken builds due
|
571
612
|
// to the change in behavior for JSON field name conflicts.
|
572
613
|
//
|
573
|
-
// TODO
|
614
|
+
// TODO This is legacy behavior we plan to remove once downstream
|
574
615
|
// teams have had time to migrate.
|
575
616
|
optional bool deprecated_legacy_json_field_conflicts = 11 [deprecated = true];
|
576
617
|
|
618
|
+
// Any features defined in the specific edition.
|
619
|
+
optional FeatureSet features = 12;
|
620
|
+
|
577
621
|
// The parser stores options it doesn't recognize here. See above.
|
578
622
|
repeated UninterpretedOption uninterpreted_option = 999;
|
579
623
|
|
@@ -607,7 +651,9 @@ message FieldOptions {
|
|
607
651
|
// a more efficient representation on the wire. Rather than repeatedly
|
608
652
|
// writing the tag and type for each element, the entire array is encoded as
|
609
653
|
// a single length-delimited blob. In proto3, only explicit setting it to
|
610
|
-
// false will avoid using packed encoding.
|
654
|
+
// false will avoid using packed encoding. This option is prohibited in
|
655
|
+
// Editions, but the `repeated_field_encoding` feature can be used to control
|
656
|
+
// the behavior.
|
611
657
|
optional bool packed = 2;
|
612
658
|
|
613
659
|
// The jstype option determines the JavaScript type used for values of the
|
@@ -650,19 +696,11 @@ message FieldOptions {
|
|
650
696
|
// call from multiple threads concurrently, while non-const methods continue
|
651
697
|
// to require exclusive access.
|
652
698
|
//
|
653
|
-
// Note that
|
654
|
-
//
|
655
|
-
//
|
656
|
-
//
|
657
|
-
//
|
658
|
-
// parsing. An implementation which chooses not to check required fields
|
659
|
-
// must be consistent about it. That is, for any particular sub-message, the
|
660
|
-
// implementation must either *always* check its required fields, or *never*
|
661
|
-
// check its required fields, regardless of whether or not the message has
|
662
|
-
// been parsed.
|
663
|
-
//
|
664
|
-
// As of May 2022, lazy verifies the contents of the byte stream during
|
665
|
-
// parsing. An invalid byte stream will cause the overall parsing to fail.
|
699
|
+
// Note that lazy message fields are still eagerly verified to check
|
700
|
+
// ill-formed wireformat or missing required fields. Calling IsInitialized()
|
701
|
+
// on the outer message would fail if the inner message has missing required
|
702
|
+
// fields. Failed verification would result in parsing failure (except when
|
703
|
+
// uninitialized messages are acceptable).
|
666
704
|
optional bool lazy = 5 [default = false];
|
667
705
|
|
668
706
|
// unverified_lazy does no correctness checks on the byte stream. This should
|
@@ -711,19 +749,31 @@ message FieldOptions {
|
|
711
749
|
TARGET_TYPE_METHOD = 9;
|
712
750
|
}
|
713
751
|
|
714
|
-
optional OptionTargetType target = 18 [deprecated = true];
|
715
752
|
repeated OptionTargetType targets = 19;
|
716
753
|
|
754
|
+
message EditionDefault {
|
755
|
+
optional Edition edition = 3;
|
756
|
+
optional string value = 2; // Textproto value.
|
757
|
+
}
|
758
|
+
repeated EditionDefault edition_defaults = 20;
|
759
|
+
|
760
|
+
// Any features defined in the specific edition.
|
761
|
+
optional FeatureSet features = 21;
|
762
|
+
|
717
763
|
// The parser stores options it doesn't recognize here. See above.
|
718
764
|
repeated UninterpretedOption uninterpreted_option = 999;
|
719
765
|
|
720
766
|
// Clients can define custom options in extensions of this message. See above.
|
721
767
|
extensions 1000 to max;
|
722
768
|
|
723
|
-
reserved 4;
|
769
|
+
reserved 4; // removed jtype
|
770
|
+
reserved 18; // reserve target, target_obsolete_do_not_use
|
724
771
|
}
|
725
772
|
|
726
773
|
message OneofOptions {
|
774
|
+
// Any features defined in the specific edition.
|
775
|
+
optional FeatureSet features = 1;
|
776
|
+
|
727
777
|
// The parser stores options it doesn't recognize here. See above.
|
728
778
|
repeated UninterpretedOption uninterpreted_option = 999;
|
729
779
|
|
@@ -749,10 +799,13 @@ message EnumOptions {
|
|
749
799
|
// and strips underscored from the fields before comparison in proto3 only.
|
750
800
|
// The new behavior takes `json_name` into account and applies to proto2 as
|
751
801
|
// well.
|
752
|
-
// TODO
|
802
|
+
// TODO Remove this legacy behavior once downstream teams have
|
753
803
|
// had time to migrate.
|
754
804
|
optional bool deprecated_legacy_json_field_conflicts = 6 [deprecated = true];
|
755
805
|
|
806
|
+
// Any features defined in the specific edition.
|
807
|
+
optional FeatureSet features = 7;
|
808
|
+
|
756
809
|
// The parser stores options it doesn't recognize here. See above.
|
757
810
|
repeated UninterpretedOption uninterpreted_option = 999;
|
758
811
|
|
@@ -767,6 +820,14 @@ message EnumValueOptions {
|
|
767
820
|
// this is a formalization for deprecating enum values.
|
768
821
|
optional bool deprecated = 1 [default = false];
|
769
822
|
|
823
|
+
// Any features defined in the specific edition.
|
824
|
+
optional FeatureSet features = 2;
|
825
|
+
|
826
|
+
// Indicate that fields annotated with this enum value should not be printed
|
827
|
+
// out when using debug formats, e.g. when the field contains sensitive
|
828
|
+
// credentials.
|
829
|
+
optional bool debug_redact = 3 [default = false];
|
830
|
+
|
770
831
|
// The parser stores options it doesn't recognize here. See above.
|
771
832
|
repeated UninterpretedOption uninterpreted_option = 999;
|
772
833
|
|
@@ -776,6 +837,9 @@ message EnumValueOptions {
|
|
776
837
|
|
777
838
|
message ServiceOptions {
|
778
839
|
|
840
|
+
// Any features defined in the specific edition.
|
841
|
+
optional FeatureSet features = 34;
|
842
|
+
|
779
843
|
// Note: Field numbers 1 through 32 are reserved for Google's internal RPC
|
780
844
|
// framework. We apologize for hoarding these numbers to ourselves, but
|
781
845
|
// we were already using them long before we decided to release Protocol
|
@@ -818,6 +882,9 @@ message MethodOptions {
|
|
818
882
|
optional IdempotencyLevel idempotency_level = 34
|
819
883
|
[default = IDEMPOTENCY_UNKNOWN];
|
820
884
|
|
885
|
+
// Any features defined in the specific edition.
|
886
|
+
optional FeatureSet features = 35;
|
887
|
+
|
821
888
|
// The parser stores options it doesn't recognize here. See above.
|
822
889
|
repeated UninterpretedOption uninterpreted_option = 999;
|
823
890
|
|
@@ -853,6 +920,130 @@ message UninterpretedOption {
|
|
853
920
|
optional string aggregate_value = 8;
|
854
921
|
}
|
855
922
|
|
923
|
+
// ===================================================================
|
924
|
+
// Features
|
925
|
+
|
926
|
+
// TODO Enums in C++ gencode (and potentially other languages) are
|
927
|
+
// not well scoped. This means that each of the feature enums below can clash
|
928
|
+
// with each other. The short names we've chosen maximize call-site
|
929
|
+
// readability, but leave us very open to this scenario. A future feature will
|
930
|
+
// be designed and implemented to handle this, hopefully before we ever hit a
|
931
|
+
// conflict here.
|
932
|
+
message FeatureSet {
|
933
|
+
enum FieldPresence {
|
934
|
+
FIELD_PRESENCE_UNKNOWN = 0;
|
935
|
+
EXPLICIT = 1;
|
936
|
+
IMPLICIT = 2;
|
937
|
+
LEGACY_REQUIRED = 3;
|
938
|
+
}
|
939
|
+
optional FieldPresence field_presence = 1 [
|
940
|
+
retention = RETENTION_RUNTIME,
|
941
|
+
targets = TARGET_TYPE_FIELD,
|
942
|
+
targets = TARGET_TYPE_FILE,
|
943
|
+
edition_defaults = { edition: EDITION_PROTO2, value: "EXPLICIT" },
|
944
|
+
edition_defaults = { edition: EDITION_PROTO3, value: "IMPLICIT" },
|
945
|
+
edition_defaults = { edition: EDITION_2023, value: "EXPLICIT" }
|
946
|
+
];
|
947
|
+
|
948
|
+
enum EnumType {
|
949
|
+
ENUM_TYPE_UNKNOWN = 0;
|
950
|
+
OPEN = 1;
|
951
|
+
CLOSED = 2;
|
952
|
+
}
|
953
|
+
optional EnumType enum_type = 2 [
|
954
|
+
retention = RETENTION_RUNTIME,
|
955
|
+
targets = TARGET_TYPE_ENUM,
|
956
|
+
targets = TARGET_TYPE_FILE,
|
957
|
+
edition_defaults = { edition: EDITION_PROTO2, value: "CLOSED" },
|
958
|
+
edition_defaults = { edition: EDITION_PROTO3, value: "OPEN" }
|
959
|
+
];
|
960
|
+
|
961
|
+
enum RepeatedFieldEncoding {
|
962
|
+
REPEATED_FIELD_ENCODING_UNKNOWN = 0;
|
963
|
+
PACKED = 1;
|
964
|
+
EXPANDED = 2;
|
965
|
+
}
|
966
|
+
optional RepeatedFieldEncoding repeated_field_encoding = 3 [
|
967
|
+
retention = RETENTION_RUNTIME,
|
968
|
+
targets = TARGET_TYPE_FIELD,
|
969
|
+
targets = TARGET_TYPE_FILE,
|
970
|
+
edition_defaults = { edition: EDITION_PROTO2, value: "EXPANDED" },
|
971
|
+
edition_defaults = { edition: EDITION_PROTO3, value: "PACKED" }
|
972
|
+
];
|
973
|
+
|
974
|
+
enum Utf8Validation {
|
975
|
+
UTF8_VALIDATION_UNKNOWN = 0;
|
976
|
+
VERIFY = 2;
|
977
|
+
NONE = 3;
|
978
|
+
}
|
979
|
+
optional Utf8Validation utf8_validation = 4 [
|
980
|
+
retention = RETENTION_RUNTIME,
|
981
|
+
targets = TARGET_TYPE_FIELD,
|
982
|
+
targets = TARGET_TYPE_FILE,
|
983
|
+
edition_defaults = { edition: EDITION_PROTO2, value: "NONE" },
|
984
|
+
edition_defaults = { edition: EDITION_PROTO3, value: "VERIFY" }
|
985
|
+
];
|
986
|
+
|
987
|
+
enum MessageEncoding {
|
988
|
+
MESSAGE_ENCODING_UNKNOWN = 0;
|
989
|
+
LENGTH_PREFIXED = 1;
|
990
|
+
DELIMITED = 2;
|
991
|
+
}
|
992
|
+
optional MessageEncoding message_encoding = 5 [
|
993
|
+
retention = RETENTION_RUNTIME,
|
994
|
+
targets = TARGET_TYPE_FIELD,
|
995
|
+
targets = TARGET_TYPE_FILE,
|
996
|
+
edition_defaults = { edition: EDITION_PROTO2, value: "LENGTH_PREFIXED" }
|
997
|
+
];
|
998
|
+
|
999
|
+
enum JsonFormat {
|
1000
|
+
JSON_FORMAT_UNKNOWN = 0;
|
1001
|
+
ALLOW = 1;
|
1002
|
+
LEGACY_BEST_EFFORT = 2;
|
1003
|
+
}
|
1004
|
+
optional JsonFormat json_format = 6 [
|
1005
|
+
retention = RETENTION_RUNTIME,
|
1006
|
+
targets = TARGET_TYPE_MESSAGE,
|
1007
|
+
targets = TARGET_TYPE_ENUM,
|
1008
|
+
targets = TARGET_TYPE_FILE,
|
1009
|
+
edition_defaults = { edition: EDITION_PROTO2, value: "LEGACY_BEST_EFFORT" },
|
1010
|
+
edition_defaults = { edition: EDITION_PROTO3, value: "ALLOW" }
|
1011
|
+
];
|
1012
|
+
|
1013
|
+
reserved 999;
|
1014
|
+
|
1015
|
+
extensions 1000; // for Protobuf C++
|
1016
|
+
extensions 1001; // for Protobuf Java
|
1017
|
+
extensions 1002; // for Protobuf Go
|
1018
|
+
|
1019
|
+
extensions 9995 to 9999; // For internal testing
|
1020
|
+
extensions 10000; // for https://github.com/bufbuild/protobuf-es
|
1021
|
+
}
|
1022
|
+
|
1023
|
+
// A compiled specification for the defaults of a set of features. These
|
1024
|
+
// messages are generated from FeatureSet extensions and can be used to seed
|
1025
|
+
// feature resolution. The resolution with this object becomes a simple search
|
1026
|
+
// for the closest matching edition, followed by proto merges.
|
1027
|
+
message FeatureSetDefaults {
|
1028
|
+
// A map from every known edition with a unique set of defaults to its
|
1029
|
+
// defaults. Not all editions may be contained here. For a given edition,
|
1030
|
+
// the defaults at the closest matching edition ordered at or before it should
|
1031
|
+
// be used. This field must be in strict ascending order by edition.
|
1032
|
+
message FeatureSetEditionDefault {
|
1033
|
+
optional Edition edition = 3;
|
1034
|
+
optional FeatureSet features = 2;
|
1035
|
+
}
|
1036
|
+
repeated FeatureSetEditionDefault defaults = 1;
|
1037
|
+
|
1038
|
+
// The minimum supported edition (inclusive) when this was constructed.
|
1039
|
+
// Editions before this will not have defaults.
|
1040
|
+
optional Edition minimum_edition = 4;
|
1041
|
+
|
1042
|
+
// The maximum known edition (inclusive) when this was constructed. Editions
|
1043
|
+
// after this will not have reliable defaults.
|
1044
|
+
optional Edition maximum_edition = 5;
|
1045
|
+
}
|
1046
|
+
|
856
1047
|
// ===================================================================
|
857
1048
|
// Optional source code info
|
858
1049
|
|
@@ -908,7 +1099,7 @@ message SourceCodeInfo {
|
|
908
1099
|
// location.
|
909
1100
|
//
|
910
1101
|
// Each element is a field number or an index. They form a path from
|
911
|
-
// the root FileDescriptorProto to the place where the definition
|
1102
|
+
// the root FileDescriptorProto to the place where the definition appears.
|
912
1103
|
// For example, this path:
|
913
1104
|
// [ 4, 3, 2, 7, 1 ]
|
914
1105
|
// refers to:
|
Binary file
|
data/bin/x86_64-macos/protoc
CHANGED
Binary file
|
@@ -149,7 +149,8 @@ message Any {
|
|
149
149
|
//
|
150
150
|
// Note: this functionality is not currently available in the official
|
151
151
|
// protobuf release, and it is not used for type URLs beginning with
|
152
|
-
// type.googleapis.com.
|
152
|
+
// type.googleapis.com. As of May 2023, there are no widely used type server
|
153
|
+
// implementations and no plans to implement one.
|
153
154
|
//
|
154
155
|
// Schemes other than `http`, `https` (or the empty scheme) might be
|
155
156
|
// used with implementation specific semantics.
|
@@ -1,32 +1,9 @@
|
|
1
1
|
// Protocol Buffers - Google's data interchange format
|
2
2
|
// Copyright 2008 Google Inc. All rights reserved.
|
3
|
-
// https://developers.google.com/protocol-buffers/
|
4
3
|
//
|
5
|
-
//
|
6
|
-
//
|
7
|
-
//
|
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.
|
4
|
+
// Use of this source code is governed by a BSD-style
|
5
|
+
// license that can be found in the LICENSE file or at
|
6
|
+
// https://developers.google.com/open-source/licenses/bsd
|
30
7
|
|
31
8
|
// Author: kenton@google.com (Kenton Varda)
|
32
9
|
//
|
@@ -76,6 +53,11 @@ message CodeGeneratorRequest {
|
|
76
53
|
// they import. The files will appear in topological order, so each file
|
77
54
|
// appears before any file that imports it.
|
78
55
|
//
|
56
|
+
// Note: the files listed in files_to_generate will include runtime-retention
|
57
|
+
// options only, but all other files will include source-retention options.
|
58
|
+
// The source_file_descriptors field below is available in case you need
|
59
|
+
// source-retention options for files_to_generate.
|
60
|
+
//
|
79
61
|
// protoc guarantees that all proto_files will be written after
|
80
62
|
// the fields above, even though this is not technically guaranteed by the
|
81
63
|
// protobuf wire format. This theoretically could allow a plugin to stream
|
@@ -88,6 +70,11 @@ message CodeGeneratorRequest {
|
|
88
70
|
// fully qualified.
|
89
71
|
repeated FileDescriptorProto proto_file = 15;
|
90
72
|
|
73
|
+
// File descriptors with all options, including source-retention options.
|
74
|
+
// These descriptors are only provided for the files listed in
|
75
|
+
// files_to_generate.
|
76
|
+
repeated FileDescriptorProto source_file_descriptors = 17;
|
77
|
+
|
91
78
|
// The version number of protocol compiler.
|
92
79
|
optional Version compiler_version = 3;
|
93
80
|
}
|
@@ -112,8 +99,21 @@ message CodeGeneratorResponse {
|
|
112
99
|
enum Feature {
|
113
100
|
FEATURE_NONE = 0;
|
114
101
|
FEATURE_PROTO3_OPTIONAL = 1;
|
102
|
+
FEATURE_SUPPORTS_EDITIONS = 2;
|
115
103
|
}
|
116
104
|
|
105
|
+
// The minimum edition this plugin supports. This will be treated as an
|
106
|
+
// Edition enum, but we want to allow unknown values. It should be specified
|
107
|
+
// according the edition enum value, *not* the edition number. Only takes
|
108
|
+
// effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
|
109
|
+
optional int32 minimum_edition = 3;
|
110
|
+
|
111
|
+
// The maximum edition this plugin supports. This will be treated as an
|
112
|
+
// Edition enum, but we want to allow unknown values. It should be specified
|
113
|
+
// according the edition enum value, *not* the edition number. Only takes
|
114
|
+
// effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
|
115
|
+
optional int32 maximum_edition = 4;
|
116
|
+
|
117
117
|
// Represents a single generated file.
|
118
118
|
message File {
|
119
119
|
// The file name, relative to the output directory. The name must not
|