Protorip

pb

Messages

NameTagTypeLabelDescription
nullable_reference_types1booloptional

Whether the generated files should have nullable reference type annotations. When enabled, the generated C# code includes #nullable enable annotations and annotates message-typed properties and certain parameters with ?.

NameTagTypeLabelDescription
legacy_closed_enum1booloptional

Whether or not to treat an enum field as closed. This option is only applicable to enum fields, and will be removed in the future. It is consistent with the legacy behavior of using proto3 enum types for proto2 fields.

string_type2CppFeatures.StringTypeoptional
enum_name_uses_string_view3booloptional
repeated_type4CppFeatures.RepeatedTypeoptional
NameTagTypeLabelDescription
legacy_closed_enum1booloptional

Whether or not to treat an enum field as closed. This option is only applicable to enum fields, and will be removed in the future. It is consistent with the legacy behavior of using proto3 enum types for proto2 fields.

utf8_validation2JavaFeatures.Utf8Validationoptional
large_enum3booloptional

Allows creation of large Java enums, extending beyond the standard constant limits imposed by the Java language.

use_old_outer_classname_default4booloptional

Whether to use the old default outer class name scheme, or the new feature which adds a "Proto" suffix to the outer class name.

Users will not be able to set this option, because we removed it in the same edition that it was introduced. But we use it to determine which naming scheme to use for outer class name defaults.

nest_in_file_class5JavaFeatures.NestInFileClassFeature.NestInFileClassoptional

Whether to nest the generated class in the generated file class. This is only applicable to top-level messages, enums, and services.

Enums

NameValueDescription
REPEATED_TYPE_UNKNOWN0
LEGACY1

The repeated field will be backed by proto2::Repeated(Ptr)Field, and accessors will return a reference/pointer to this type.

PROXY2

The repeated field has an opaque backing type, and accessors will return a RepeatedFieldProxy.

The name of this enum matches OptimizeMode in descriptor.proto.

NameValueDescription
OPTIMIZE_MODE_UNSPECIFIED0

OPTIMIZE_MODE_UNSPECIFIED results in falling back to the default (optimize for code size), but needs to be a separate value to distinguish between an explicitly set optimize mode or a missing optimize mode.

SPEED1
CODE_SIZE2
NameValueDescription
API_LEVEL_UNSPECIFIED0

API_LEVEL_UNSPECIFIED results in selecting the OPEN API, but needs to be a separate value to distinguish between an explicitly set api level or a missing api level.

API_OPEN1
API_HYBRID2
API_OPAQUE3
NameValueDescription
NEST_IN_FILE_CLASS_UNKNOWN0

Invalid default, which should never be used.

NO1

Do not nest the generated class in the file class.

YES2

Nest the generated class in the file class.

LEGACY3

Fall back to the java_multiple_files option. Users won't be able to set this option.

The UTF8 validation strategy to use.

NameValueDescription
UTF8_VALIDATION_UNKNOWN0

Invalid default, which should never be used.

DEFAULT1

Respect the UTF8 validation behavior specified by the global utf8_validation feature.

VERIFY2

Verifies UTF8 validity overriding the global utf8_validation feature. This represents the legacy java_string_check_utf8 option.

Extensions