protostar 0.1.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +60 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +647 -0
  5. data/THIRD_PARTY_NOTICES.md +61 -0
  6. data/exe/protoc-gen-protostar +7 -0
  7. data/exe/protostar +7 -0
  8. data/lib/protostar/builder/generator.rb +71 -0
  9. data/lib/protostar/builder/sink.rb +35 -0
  10. data/lib/protostar/builder.rb +965 -0
  11. data/lib/protostar/cli.rb +267 -0
  12. data/lib/protostar/codec/decode_generator.rb +199 -0
  13. data/lib/protostar/codec/decoder.rb +296 -0
  14. data/lib/protostar/codec/encode_generator.rb +224 -0
  15. data/lib/protostar/codec/encoder.rb +121 -0
  16. data/lib/protostar/codec/sizer.rb +91 -0
  17. data/lib/protostar/codec.rb +15 -0
  18. data/lib/protostar/compiler/ast.rb +193 -0
  19. data/lib/protostar/compiler/emitters/descriptor_set.rb +57 -0
  20. data/lib/protostar/compiler/emitters/google_ruby.rb +103 -0
  21. data/lib/protostar/compiler/emitters/grpc.rb +175 -0
  22. data/lib/protostar/compiler/emitters/protostar_rbs.rb +252 -0
  23. data/lib/protostar/compiler/emitters/rbs.rb +394 -0
  24. data/lib/protostar/compiler/emitters/ruby.rb +503 -0
  25. data/lib/protostar/compiler/emitters.rb +268 -0
  26. data/lib/protostar/compiler/include/LICENSE +32 -0
  27. data/lib/protostar/compiler/include/google/protobuf/any.proto +106 -0
  28. data/lib/protostar/compiler/include/google/protobuf/api.proto +229 -0
  29. data/lib/protostar/compiler/include/google/protobuf/compiler/plugin.proto +180 -0
  30. data/lib/protostar/compiler/include/google/protobuf/cpp_features.proto +87 -0
  31. data/lib/protostar/compiler/include/google/protobuf/descriptor.proto +1532 -0
  32. data/lib/protostar/compiler/include/google/protobuf/duration.proto +115 -0
  33. data/lib/protostar/compiler/include/google/protobuf/empty.proto +51 -0
  34. data/lib/protostar/compiler/include/google/protobuf/field_mask.proto +243 -0
  35. data/lib/protostar/compiler/include/google/protobuf/java_features.proto +132 -0
  36. data/lib/protostar/compiler/include/google/protobuf/source_context.proto +48 -0
  37. data/lib/protostar/compiler/include/google/protobuf/struct.proto +111 -0
  38. data/lib/protostar/compiler/include/google/protobuf/timestamp.proto +145 -0
  39. data/lib/protostar/compiler/include/google/protobuf/type.proto +217 -0
  40. data/lib/protostar/compiler/include/google/protobuf/wrappers.proto +157 -0
  41. data/lib/protostar/compiler/lexer.rb +659 -0
  42. data/lib/protostar/compiler/linker.rb +894 -0
  43. data/lib/protostar/compiler/option_interpreter.rb +363 -0
  44. data/lib/protostar/compiler/parser.rb +1696 -0
  45. data/lib/protostar/compiler/retention.rb +104 -0
  46. data/lib/protostar/compiler/run.rb +184 -0
  47. data/lib/protostar/compiler/source_info.rb +161 -0
  48. data/lib/protostar/compiler/symbol_table.rb +223 -0
  49. data/lib/protostar/compiler/text_format.rb +340 -0
  50. data/lib/protostar/compiler/validator.rb +944 -0
  51. data/lib/protostar/compiler.rb +304 -0
  52. data/lib/protostar/diagnostics/codes.rb +1307 -0
  53. data/lib/protostar/diagnostics/formats.rb +64 -0
  54. data/lib/protostar/diagnostics/renderer.rb +240 -0
  55. data/lib/protostar/diagnostics/source.rb +153 -0
  56. data/lib/protostar/diagnostics.rb +117 -0
  57. data/lib/protostar/dsl.rb +367 -0
  58. data/lib/protostar/enum.rb +70 -0
  59. data/lib/protostar/errors.rb +23 -0
  60. data/lib/protostar/google/protobuf/any_pb.rb +90 -0
  61. data/lib/protostar/google/protobuf/api_pb.rb +199 -0
  62. data/lib/protostar/google/protobuf/compiler/plugin_pb.rb +168 -0
  63. data/lib/protostar/google/protobuf/descriptor_pb.rb +1239 -0
  64. data/lib/protostar/google/protobuf/duration_pb.rb +99 -0
  65. data/lib/protostar/google/protobuf/empty_pb.rb +36 -0
  66. data/lib/protostar/google/protobuf/field_mask_pb.rb +228 -0
  67. data/lib/protostar/google/protobuf/source_context_pb.rb +33 -0
  68. data/lib/protostar/google/protobuf/struct_pb.rb +91 -0
  69. data/lib/protostar/google/protobuf/timestamp_pb.rb +129 -0
  70. data/lib/protostar/google/protobuf/type_pb.rb +202 -0
  71. data/lib/protostar/google/protobuf/wrappers_pb.rb +125 -0
  72. data/lib/protostar/google_protobuf_shim.rb +24 -0
  73. data/lib/protostar/json/encoder.rb +340 -0
  74. data/lib/protostar/json/errors.rb +34 -0
  75. data/lib/protostar/json/parser.rb +437 -0
  76. data/lib/protostar/json/path.rb +39 -0
  77. data/lib/protostar/json.rb +95 -0
  78. data/lib/protostar/lint/command.rb +197 -0
  79. data/lib/protostar/lint/config.rb +98 -0
  80. data/lib/protostar/lint/context.rb +126 -0
  81. data/lib/protostar/lint/directives.rb +56 -0
  82. data/lib/protostar/lint/fixer.rb +165 -0
  83. data/lib/protostar/lint/naming.rb +54 -0
  84. data/lib/protostar/lint/rule.rb +120 -0
  85. data/lib/protostar/lint/rules/comment_enum.rb +31 -0
  86. data/lib/protostar/lint/rules/comment_enum_value.rb +32 -0
  87. data/lib/protostar/lint/rules/comment_field.rb +33 -0
  88. data/lib/protostar/lint/rules/comment_message.rb +31 -0
  89. data/lib/protostar/lint/rules/comment_rpc.rb +31 -0
  90. data/lib/protostar/lint/rules/comment_service.rb +31 -0
  91. data/lib/protostar/lint/rules/edition_recommended.rb +31 -0
  92. data/lib/protostar/lint/rules/enum_first_value_zero.rb +34 -0
  93. data/lib/protostar/lint/rules/enum_pascal_case.rb +25 -0
  94. data/lib/protostar/lint/rules/enum_value_prefix.rb +38 -0
  95. data/lib/protostar/lint/rules/enum_value_upper_snake_case.rb +28 -0
  96. data/lib/protostar/lint/rules/enum_zero_value_suffix.rb +41 -0
  97. data/lib/protostar/lint/rules/field_lower_snake_case.rb +34 -0
  98. data/lib/protostar/lint/rules/field_not_required.rb +39 -0
  99. data/lib/protostar/lint/rules/field_number_reuse_risk.rb +45 -0
  100. data/lib/protostar/lint/rules/field_numbers_hot_range.rb +44 -0
  101. data/lib/protostar/lint/rules/file_lower_snake_case.rb +27 -0
  102. data/lib/protostar/lint/rules/import_no_public.rb +29 -0
  103. data/lib/protostar/lint/rules/import_no_weak.rb +28 -0
  104. data/lib/protostar/lint/rules/import_used.rb +33 -0
  105. data/lib/protostar/lint/rules/message_pascal_case.rb +27 -0
  106. data/lib/protostar/lint/rules/no_deprecated_features.rb +50 -0
  107. data/lib/protostar/lint/rules/no_groups.rb +34 -0
  108. data/lib/protostar/lint/rules/oneof_lower_snake_case.rb +27 -0
  109. data/lib/protostar/lint/rules/package_defined.rb +28 -0
  110. data/lib/protostar/lint/rules/package_directory_match.rb +33 -0
  111. data/lib/protostar/lint/rules/package_lower_snake_case.rb +28 -0
  112. data/lib/protostar/lint/rules/package_same_directory.rb +39 -0
  113. data/lib/protostar/lint/rules/package_version_suffix.rb +31 -0
  114. data/lib/protostar/lint/rules/reserved_names_with_numbers.rb +44 -0
  115. data/lib/protostar/lint/rules/rpc_pascal_case.rb +25 -0
  116. data/lib/protostar/lint/rules/rpc_request_response_unique.rb +40 -0
  117. data/lib/protostar/lint/rules/rpc_request_standard_name.rb +32 -0
  118. data/lib/protostar/lint/rules/rpc_response_standard_name.rb +31 -0
  119. data/lib/protostar/lint/rules/service_pascal_case.rb +25 -0
  120. data/lib/protostar/lint/rules/service_suffix.rb +28 -0
  121. data/lib/protostar/lint/rules/syntax_specified.rb +35 -0
  122. data/lib/protostar/lint/runner.rb +135 -0
  123. data/lib/protostar/lint.rb +122 -0
  124. data/lib/protostar/message/accessors.rb +86 -0
  125. data/lib/protostar/message/coercion.rb +171 -0
  126. data/lib/protostar/message/field_info.rb +145 -0
  127. data/lib/protostar/message/reflection.rb +149 -0
  128. data/lib/protostar/message.rb +572 -0
  129. data/lib/protostar/plugin.rb +94 -0
  130. data/lib/protostar/schema/default_value.rb +113 -0
  131. data/lib/protostar/schema/descriptor.rb +41 -0
  132. data/lib/protostar/schema/draft/copy.rb +88 -0
  133. data/lib/protostar/schema/draft/resolution.rb +177 -0
  134. data/lib/protostar/schema/draft.rb +779 -0
  135. data/lib/protostar/schema/enum.rb +106 -0
  136. data/lib/protostar/schema/extension_range.rb +37 -0
  137. data/lib/protostar/schema/features.rb +153 -0
  138. data/lib/protostar/schema/field.rb +201 -0
  139. data/lib/protostar/schema/file.rb +217 -0
  140. data/lib/protostar/schema/freezer.rb +61 -0
  141. data/lib/protostar/schema/message.rb +104 -0
  142. data/lib/protostar/schema/oneof.rb +38 -0
  143. data/lib/protostar/schema/options.rb +367 -0
  144. data/lib/protostar/schema/pool.rb +179 -0
  145. data/lib/protostar/schema/proto.rb +576 -0
  146. data/lib/protostar/schema/resolver.rb +118 -0
  147. data/lib/protostar/schema/service.rb +89 -0
  148. data/lib/protostar/schema/source_info.rb +53 -0
  149. data/lib/protostar/schema.rb +65 -0
  150. data/lib/protostar/short_names/any.rb +7 -0
  151. data/lib/protostar/short_names/duration.rb +7 -0
  152. data/lib/protostar/short_names/empty.rb +7 -0
  153. data/lib/protostar/short_names/field_mask.rb +7 -0
  154. data/lib/protostar/short_names/struct.rb +9 -0
  155. data/lib/protostar/short_names/timestamp.rb +7 -0
  156. data/lib/protostar/short_names/wrappers.rb +15 -0
  157. data/lib/protostar/text/extensions.rb +114 -0
  158. data/lib/protostar/text/parser.rb +439 -0
  159. data/lib/protostar/text/printer.rb +304 -0
  160. data/lib/protostar/text/tokenizer.rb +116 -0
  161. data/lib/protostar/text.rb +67 -0
  162. data/lib/protostar/types.rb +152 -0
  163. data/lib/protostar/unknown_field.rb +58 -0
  164. data/lib/protostar/version.rb +5 -0
  165. data/lib/protostar/view/generator.rb +298 -0
  166. data/lib/protostar/view/map.rb +194 -0
  167. data/lib/protostar/view/repeated.rb +143 -0
  168. data/lib/protostar/view/scan.rb +183 -0
  169. data/lib/protostar/view.rb +283 -0
  170. data/lib/protostar/well_known/any.rb +52 -0
  171. data/lib/protostar/well_known/duration.rb +53 -0
  172. data/lib/protostar/well_known/list_value.rb +63 -0
  173. data/lib/protostar/well_known/struct.rb +55 -0
  174. data/lib/protostar/well_known/timestamp.rb +64 -0
  175. data/lib/protostar/well_known/value.rb +60 -0
  176. data/lib/protostar/well_known.rb +38 -0
  177. data/lib/protostar/wire/io_source.rb +40 -0
  178. data/lib/protostar/wire/reader.rb +254 -0
  179. data/lib/protostar/wire/writer.rb +201 -0
  180. data/lib/protostar/wire.rb +96 -0
  181. data/lib/protostar.rb +95 -0
  182. data/shims/google-protobuf/lib/google/protobuf/any_pb.rb +17 -0
  183. data/shims/google-protobuf/lib/google/protobuf/api_pb.rb +22 -0
  184. data/shims/google-protobuf/lib/google/protobuf/compiler/plugin_pb.rb +25 -0
  185. data/shims/google-protobuf/lib/google/protobuf/descriptor_pb.rb +72 -0
  186. data/shims/google-protobuf/lib/google/protobuf/descriptor_pool.rb +164 -0
  187. data/shims/google-protobuf/lib/google/protobuf/descriptors.rb +553 -0
  188. data/shims/google-protobuf/lib/google/protobuf/duration_pb.rb +17 -0
  189. data/shims/google-protobuf/lib/google/protobuf/empty_pb.rb +17 -0
  190. data/shims/google-protobuf/lib/google/protobuf/field_mask_pb.rb +17 -0
  191. data/shims/google-protobuf/lib/google/protobuf/internal/convert.rb +180 -0
  192. data/shims/google-protobuf/lib/google/protobuf/internal/extensions.rb +154 -0
  193. data/shims/google-protobuf/lib/google/protobuf/internal/json.rb +104 -0
  194. data/shims/google-protobuf/lib/google/protobuf/internal/well_known.rb +140 -0
  195. data/shims/google-protobuf/lib/google/protobuf/map.rb +216 -0
  196. data/shims/google-protobuf/lib/google/protobuf/message.rb +544 -0
  197. data/shims/google-protobuf/lib/google/protobuf/message_exts.rb +41 -0
  198. data/shims/google-protobuf/lib/google/protobuf/plugin_pb.rb +4 -0
  199. data/shims/google-protobuf/lib/google/protobuf/repeated_field.rb +366 -0
  200. data/shims/google-protobuf/lib/google/protobuf/source_context_pb.rb +17 -0
  201. data/shims/google-protobuf/lib/google/protobuf/struct_pb.rb +20 -0
  202. data/shims/google-protobuf/lib/google/protobuf/timestamp_pb.rb +17 -0
  203. data/shims/google-protobuf/lib/google/protobuf/type_pb.rb +27 -0
  204. data/shims/google-protobuf/lib/google/protobuf/well_known_types.rb +37 -0
  205. data/shims/google-protobuf/lib/google/protobuf/wrappers_pb.rb +25 -0
  206. data/shims/google-protobuf/lib/google/protobuf.rb +107 -0
  207. data/shims/google-protobuf/lib/google/protobuf_ffi.rb +5 -0
  208. data/shims/google-protobuf/lib/google/protobuf_native.rb +5 -0
  209. data/sig/protostar/google/protobuf/any_pb.rbs +77 -0
  210. data/sig/protostar/google/protobuf/api_pb.rbs +242 -0
  211. data/sig/protostar/google/protobuf/compiler/plugin_pb.rbs +264 -0
  212. data/sig/protostar/google/protobuf/descriptor_pb.rbs +2220 -0
  213. data/sig/protostar/google/protobuf/duration_pb.rbs +82 -0
  214. data/sig/protostar/google/protobuf/empty_pb.rbs +18 -0
  215. data/sig/protostar/google/protobuf/field_mask_pb.rbs +170 -0
  216. data/sig/protostar/google/protobuf/source_context_pb.rbs +24 -0
  217. data/sig/protostar/google/protobuf/struct_pb.rbs +135 -0
  218. data/sig/protostar/google/protobuf/timestamp_pb.rbs +102 -0
  219. data/sig/protostar/google/protobuf/type_pb.rbs +304 -0
  220. data/sig/protostar/google/protobuf/wrappers_pb.rbs +169 -0
  221. data/sig/protostar/lint.rbs +216 -0
  222. data/sig/protostar.rbs +326 -0
  223. metadata +366 -0
data/sig/protostar.rbs ADDED
@@ -0,0 +1,326 @@
1
+ # The public API of protostar. Message classes generated with
2
+ # `protostar compile --ruby_out=... --rbs_out=...` get their own `_pb.rbs`
3
+ # describing their fields; the well-known types' signatures are under
4
+ # sig/protostar/google/protobuf/.
5
+ module Protostar
6
+ VERSION: String
7
+
8
+ class Error < ::StandardError
9
+ end
10
+
11
+ class DecodeError < Error
12
+ attr_reader offset: ::Integer?
13
+ def initialize: (::String message, ?offset: ::Integer?) -> void
14
+ end
15
+
16
+ class EncodeError < Error
17
+ end
18
+
19
+ class TypeError < ::TypeError
20
+ end
21
+
22
+ class Timestamp = Google::Protobuf::Timestamp
23
+ class Duration = Google::Protobuf::Duration
24
+ class Any = Google::Protobuf::Any
25
+ class Struct = Google::Protobuf::Struct
26
+ class Value = Google::Protobuf::Value
27
+ class ListValue = Google::Protobuf::ListValue
28
+ class Empty = Google::Protobuf::Empty
29
+ class FieldMask = Google::Protobuf::FieldMask
30
+ class DoubleValue = Google::Protobuf::DoubleValue
31
+ class FloatValue = Google::Protobuf::FloatValue
32
+ class Int64Value = Google::Protobuf::Int64Value
33
+ class UInt64Value = Google::Protobuf::UInt64Value
34
+ class Int32Value = Google::Protobuf::Int32Value
35
+ class UInt32Value = Google::Protobuf::UInt32Value
36
+ class BoolValue = Google::Protobuf::BoolValue
37
+ class StringValue = Google::Protobuf::StringValue
38
+ class BytesValue = Google::Protobuf::BytesValue
39
+
40
+ # A field read from the wire that the message's schema does not know
41
+ class UnknownField
42
+ attr_reader number: ::Integer
43
+ attr_reader wire_type: ::Integer
44
+ attr_reader bytes: ::String
45
+ def initialize: (::Integer number, ::Integer wire_type, ::String bytes) -> void
46
+ def value: () -> (::Integer | ::String)
47
+ def to_wire: () -> ::String
48
+ end
49
+
50
+ # Extended by every enum Module
51
+ module Enum
52
+ def descriptor: () -> untyped
53
+ def lookup: (::Integer number) -> ::Symbol?
54
+ def resolve: (::Symbol | ::String name) -> ::Integer?
55
+ end
56
+
57
+ # The base class of every message class
58
+ class Message
59
+ type json_options = {
60
+ ?preserve_proto_field_names: bool,
61
+ ?preserve_proto_fieldnames: bool,
62
+ ?emit_defaults: bool,
63
+ ?format_enums_as_integers: bool,
64
+ ?registry: Types::Registry?
65
+ }
66
+
67
+ def self.descriptor: () -> untyped
68
+ def self.decode: (::String | ::IO::Buffer bytes, ?recursion_limit: ::Integer, ?frozen: bool) -> instance
69
+ def self.decode_delimited: (::String | ::IO::Buffer | ::IO source, ?recursion_limit: ::Integer, ?frozen: bool) -> instance?
70
+ def self.encode: (instance message) -> ::String
71
+ def self.decode_json: (::String json, ?ignore_unknown_fields: bool, ?registry: Types::Registry?) -> instance
72
+ def self.encode_json: (instance message, **untyped options) -> ::String
73
+ def self.merge: (instance a, instance b) -> instance
74
+ def self.view: (::String | ::IO::Buffer bytes, ?offset: ::Integer, ?length: ::Integer?, ?recursion_limit: ::Integer) -> View
75
+ def self.view_class: () -> singleton(View)
76
+ def self.build: (?::Hash[::Symbol | ::String, untyped]? fields, **untyped) ?{ (Builder pb) -> void } -> instance
77
+ def self.reflection: () -> Reflection
78
+
79
+ def initialize: (?::Hash[::Symbol | ::String, untyped]? hash, **untyped fields) -> void
80
+ def []: (::String | ::Symbol name) -> untyped
81
+ def []=: (::String | ::Symbol name, untyped value) -> untyped
82
+ def unknown_fields: () -> ::Array[UnknownField]
83
+ def encode: () -> ::String
84
+ def encode_to: [T] (T io) -> T
85
+ def encode_delimited: () -> ::String
86
+ | [T] (T io) -> T
87
+ def to_json: (?untyped state, **untyped options) -> ::String
88
+ def to_text: (**untyped options) -> ::String
89
+ def to_h: () -> ::Hash[::Symbol, untyped]
90
+ def ==: (untyped other) -> bool
91
+ def hash: () -> ::Integer
92
+ def clone: (?freeze: bool?) -> self
93
+ def freeze: () -> self
94
+ def merge!: (self other) -> self
95
+ def clear!: () -> self
96
+ def initialized?: () -> bool
97
+ def inspect: () -> ::String
98
+ def pretty_print: (untyped q) -> void
99
+
100
+ # A message class's fields by descriptor, name or number (Klass.reflection)
101
+ class Reflection
102
+ type field_key = ::String | ::Symbol | ::Integer | untyped
103
+
104
+ def klass: () -> untyped
105
+ def descriptor: () -> untyped
106
+ def fields: () -> ::Array[untyped]
107
+ def oneofs: () -> ::Array[untyped]
108
+ def field: (field_key key) -> untyped
109
+ def get: (Message message, field_key key) -> untyped
110
+ def set: (Message message, field_key key, untyped value) -> Message
111
+ def set?: (Message message, field_key key) -> bool
112
+ def clear: (Message message, field_key key) -> Message
113
+ def which: (Message message, untyped oneof) -> untyped
114
+ def message_class: (field_key key) -> untyped
115
+ def enum_module: (field_key key) -> untyped
116
+ def each: (Message message) { (untyped field, untyped value) -> void } -> nil
117
+ | (Message message) -> ::Enumerator[[untyped, untyped], nil]
118
+ def inspect: () -> ::String
119
+ end
120
+ end
121
+
122
+ # A read-only message over encoded bytes; fields are decoded when read
123
+ class View
124
+ def self.message_class: () -> singleton(Message)
125
+ def self.descriptor: () -> untyped
126
+
127
+ def descriptor: () -> untyped
128
+ def []: (::String | ::Symbol name) -> untyped
129
+ def unknown_fields: () -> ::Array[UnknownField]
130
+ def encode: () -> ::String
131
+ def to_proto: () -> ::String
132
+ def to_message: (?frozen: bool) -> Message
133
+ def to_h: () -> ::Hash[::Symbol, untyped]
134
+ def ==: (untyped other) -> bool
135
+ def hash: () -> ::Integer
136
+ def freeze_index: () -> self
137
+ def inspect: () -> ::String
138
+ def pretty_print: (untyped q) -> void
139
+ end
140
+
141
+ module Types
142
+ class Registry
143
+ def initialize: (?open_enums: bool) -> void
144
+ def find: (::String full_name) -> (singleton(Message) | Module)?
145
+ def file: (::String file_name) -> ::Hash[::String, singleton(Message) | Module]?
146
+ def define: (untyped file, ?name: Module?) -> ::Hash[::String, singleton(Message) | Module]
147
+ end
148
+
149
+ def self.registry: () -> Registry
150
+ def self.define: (untyped file, ?name: Module?, ?registry: Registry) -> ::Hash[::String, singleton(Message) | Module]
151
+ def self.find: (::String full_name, ?registry: Registry) -> (singleton(Message) | Module)?
152
+ end
153
+
154
+ module JSON
155
+ class Error < Protostar::Error
156
+ end
157
+
158
+ class ParseError < Error
159
+ attr_reader path: ::String
160
+ def initialize: (::String message, ?::String path) -> void
161
+ end
162
+
163
+ class EncodeError < Error
164
+ attr_reader path: ::String
165
+ def initialize: (::String message, ?::String path) -> void
166
+ end
167
+
168
+ def self.encode: (Message message, ?preserve_proto_field_names: bool, ?preserve_proto_fieldnames: bool,
169
+ ?emit_defaults: bool, ?format_enums_as_integers: bool, ?registry: Types::Registry?) -> ::String
170
+ def self.decode: (singleton(Message) klass, ::String json, ?ignore_unknown_fields: bool,
171
+ ?registry: Types::Registry?) -> Message
172
+ end
173
+
174
+ module Text
175
+ class Error < Protostar::Error
176
+ end
177
+
178
+ class ParseError < Error
179
+ attr_reader line: ::Integer
180
+ attr_reader column: ::Integer
181
+ def initialize: (::String message, ::Integer line, ::Integer column) -> void
182
+ end
183
+
184
+ def self.print: (Message | View message, ?single_line: bool, ?expand_any: bool, ?as_utf8: bool,
185
+ ?unknown_fields: bool, ?registry: Types::Registry?, ?pool: untyped) -> ::String
186
+ def self.parse: (singleton(Message) klass, ::String text, ?allow_unknown_fields: bool,
187
+ ?allow_partial: bool, ?registry: Types::Registry?, ?pool: untyped) -> Message
188
+ end
189
+
190
+ # Writes a message's encoding as fields are given, without building the message
191
+ class Builder
192
+ class Error < Protostar::Error
193
+ attr_reader path: ::String?
194
+ def initialize: (::String message, ?path: ::String?) -> void
195
+ end
196
+
197
+ interface _CacheStore
198
+ def fetch: (untyped key, ?::Hash[::Symbol, untyped] options) { () -> ::String } -> ::String
199
+ end
200
+
201
+ type options = {
202
+ ?cache_store: _CacheStore?,
203
+ ?overwrites: bool,
204
+ ?repeated: :append | :replace,
205
+ ?buffer: ::Integer,
206
+ ?chunk_nested_at: ::Integer?
207
+ }
208
+
209
+ # Anything that takes bytes: `write` (an IO, a socket, a Rack stream), `<<` (an Array) or `call` (a Proc)
210
+ type sink = ::String | _Write | _Append | ^(::String bytes) -> untyped
211
+
212
+ interface _Write
213
+ def write: (::String bytes) -> untyped
214
+ end
215
+
216
+ interface _Append
217
+ def <<: (::String bytes) -> untyped
218
+ end
219
+
220
+ def self.build: (untyped klass, ?cache_store: _CacheStore?, ?overwrites: bool, ?repeated: :append | :replace,
221
+ ?buffer: ::Integer, ?chunk_nested_at: ::Integer?) { (Builder pb) -> void } -> ::String
222
+ def self.message: (untyped klass, ?cache_store: _CacheStore?, ?overwrites: bool, ?repeated: :append | :replace,
223
+ ?buffer: ::Integer, ?chunk_nested_at: ::Integer?) { (Builder pb) -> void } -> Message
224
+ def self.write: [T < sink] (T io, untyped klass, ?cache_store: _CacheStore?, ?overwrites: bool, ?repeated: :append | :replace,
225
+ ?buffer: ::Integer, ?chunk_nested_at: ::Integer?) { (Builder pb) -> void } -> T
226
+ def self.each: [T < sink, E] (T io, untyped klass, _Each[E] collection, ?cache_store: _CacheStore?, ?overwrites: bool,
227
+ ?repeated: :append | :replace, ?buffer: ::Integer, ?chunk_nested_at: ::Integer?) { (Builder pb, E element) -> void } -> T
228
+ | [E] (nil io, untyped klass, _Each[E] collection, ?cache_store: _CacheStore?, ?overwrites: bool,
229
+ ?repeated: :append | :replace, ?buffer: ::Integer, ?chunk_nested_at: ::Integer?) { (Builder pb, E element) -> void } -> ::String
230
+ def self.each_chunk: (untyped klass, ?cache_store: _CacheStore?, ?overwrites: bool, ?repeated: :append | :replace,
231
+ ?buffer: ::Integer, ?chunk_nested_at: ::Integer?) { (Builder pb) -> void } -> ::Enumerator[::String, nil]
232
+ def self.new: (untyped klass, ?sink? target, ?cache_store: _CacheStore?, ?overwrites: bool, ?repeated: :append | :replace,
233
+ ?buffer: ::Integer, ?chunk_nested_at: ::Integer?) -> Builder
234
+ def self.for: (untyped klass) -> singleton(Builder)
235
+ def self.resolve: (untyped klass) -> singleton(Message)
236
+
237
+ def target!: () -> untyped
238
+ def message_class: () -> singleton(Message)
239
+ def set!: (::String | ::Symbol name, *untyped value_and_attributes) ?{ (?untyped element) -> void } -> self
240
+ def extract!: (untyped object, *(::String | ::Symbol) names) -> self
241
+ def merge!: (::Hash[::String | ::Symbol, untyped] hash) -> self
242
+ def encoded!: (::String | ::Symbol name, ::String | ::Array[::String] bytes) -> self
243
+ def cache!: (untyped key, **untyped options) { (Builder pb) -> void } -> self
244
+ def cache_if!: (boolish condition, untyped key, **untyped options) { (Builder pb) -> void } -> self
245
+ end
246
+
247
+ # Helpers mixed into the well-known types, as google-protobuf names them
248
+ module WellKnown
249
+ class UnexpectedStructType < Protostar::Error
250
+ end
251
+
252
+ module Any
253
+ DEFAULT_PREFIX: ::String
254
+
255
+ module ClassMethods
256
+ def pack: (Message message, ?::String type_url_prefix) -> Google::Protobuf::Any
257
+ end
258
+
259
+ def pack: (Message message, ?::String type_url_prefix) -> self
260
+ def unpack: (singleton(Message) klass) -> Message?
261
+ def type_name: () -> ::String
262
+ def is: (singleton(Message) klass) -> bool
263
+ end
264
+
265
+ module Timestamp
266
+ def self.parts: (untyped value) -> [::Integer, ::Integer]?
267
+
268
+ module ClassMethods
269
+ def from_time: (::Time time) -> Google::Protobuf::Timestamp
270
+ end
271
+
272
+ def from_time: (::Time time) -> self
273
+ def to_time: () -> ::Time
274
+ def to_i: () -> ::Integer
275
+ def to_f: () -> ::Rational
276
+ end
277
+
278
+ module Duration
279
+ MAX_SECONDS: ::Integer
280
+ NANOS: ::Integer
281
+
282
+ def self.parts: (untyped value) -> [::Integer, ::Integer]?
283
+
284
+ module ClassMethods
285
+ end
286
+
287
+ def to_f: () -> ::Float
288
+ end
289
+
290
+ module Struct
291
+ module ClassMethods
292
+ def from_hash: (::Hash[::String, untyped] hash) -> Google::Protobuf::Struct
293
+ end
294
+
295
+ def []: (::String key) -> untyped
296
+ def []=: (::String key, untyped value) -> untyped
297
+ def to_h: () -> ::Hash[::String, untyped]
298
+ def has_key?: (::String key) -> bool
299
+ end
300
+
301
+ module Value
302
+ module ClassMethods
303
+ def from_ruby: (untyped value) -> Google::Protobuf::Value
304
+ end
305
+
306
+ def to_ruby: (?bool recursive) -> untyped
307
+ def from_ruby: (untyped value) -> self
308
+ end
309
+
310
+ module ListValue
311
+ include ::Enumerable[untyped]
312
+
313
+ module ClassMethods
314
+ def from_a: (::Array[untyped] array) -> Google::Protobuf::ListValue
315
+ end
316
+
317
+ def length: () -> ::Integer
318
+ def []: (::Integer index) -> untyped
319
+ def []=: (::Integer index, untyped value) -> untyped
320
+ def <<: (untyped value) -> self
321
+ def each: () { (untyped) -> void } -> self
322
+ | () -> ::Enumerator[untyped, self]
323
+ def to_a: () -> ::Array[untyped]
324
+ end
325
+ end
326
+ end
metadata ADDED
@@ -0,0 +1,366 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: protostar
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0.beta1
5
+ platform: ruby
6
+ authors:
7
+ - Julik Tarkhanov
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 2026-10-13 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rake
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '13.0'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '13.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: minitest
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '5.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: minitest-fail-fast
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: standard
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.50'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.50'
68
+ - !ruby/object:Gem::Dependency
69
+ name: magic_frozen_string_literal
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: yard
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: rbs
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '3.5'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '3.5'
110
+ description: Compiles .proto files to Ruby, encodes and decodes protobuf messages,
111
+ and can stand in for the google-protobuf gem. No protoc, no native extensions.
112
+ email:
113
+ - me@julik.nl
114
+ executables:
115
+ - protoc-gen-protostar
116
+ - protostar
117
+ extensions: []
118
+ extra_rdoc_files: []
119
+ files:
120
+ - CHANGELOG.md
121
+ - LICENSE.txt
122
+ - README.md
123
+ - THIRD_PARTY_NOTICES.md
124
+ - exe/protoc-gen-protostar
125
+ - exe/protostar
126
+ - lib/protostar.rb
127
+ - lib/protostar/builder.rb
128
+ - lib/protostar/builder/generator.rb
129
+ - lib/protostar/builder/sink.rb
130
+ - lib/protostar/cli.rb
131
+ - lib/protostar/codec.rb
132
+ - lib/protostar/codec/decode_generator.rb
133
+ - lib/protostar/codec/decoder.rb
134
+ - lib/protostar/codec/encode_generator.rb
135
+ - lib/protostar/codec/encoder.rb
136
+ - lib/protostar/codec/sizer.rb
137
+ - lib/protostar/compiler.rb
138
+ - lib/protostar/compiler/ast.rb
139
+ - lib/protostar/compiler/emitters.rb
140
+ - lib/protostar/compiler/emitters/descriptor_set.rb
141
+ - lib/protostar/compiler/emitters/google_ruby.rb
142
+ - lib/protostar/compiler/emitters/grpc.rb
143
+ - lib/protostar/compiler/emitters/protostar_rbs.rb
144
+ - lib/protostar/compiler/emitters/rbs.rb
145
+ - lib/protostar/compiler/emitters/ruby.rb
146
+ - lib/protostar/compiler/include/LICENSE
147
+ - lib/protostar/compiler/include/google/protobuf/any.proto
148
+ - lib/protostar/compiler/include/google/protobuf/api.proto
149
+ - lib/protostar/compiler/include/google/protobuf/compiler/plugin.proto
150
+ - lib/protostar/compiler/include/google/protobuf/cpp_features.proto
151
+ - lib/protostar/compiler/include/google/protobuf/descriptor.proto
152
+ - lib/protostar/compiler/include/google/protobuf/duration.proto
153
+ - lib/protostar/compiler/include/google/protobuf/empty.proto
154
+ - lib/protostar/compiler/include/google/protobuf/field_mask.proto
155
+ - lib/protostar/compiler/include/google/protobuf/java_features.proto
156
+ - lib/protostar/compiler/include/google/protobuf/source_context.proto
157
+ - lib/protostar/compiler/include/google/protobuf/struct.proto
158
+ - lib/protostar/compiler/include/google/protobuf/timestamp.proto
159
+ - lib/protostar/compiler/include/google/protobuf/type.proto
160
+ - lib/protostar/compiler/include/google/protobuf/wrappers.proto
161
+ - lib/protostar/compiler/lexer.rb
162
+ - lib/protostar/compiler/linker.rb
163
+ - lib/protostar/compiler/option_interpreter.rb
164
+ - lib/protostar/compiler/parser.rb
165
+ - lib/protostar/compiler/retention.rb
166
+ - lib/protostar/compiler/run.rb
167
+ - lib/protostar/compiler/source_info.rb
168
+ - lib/protostar/compiler/symbol_table.rb
169
+ - lib/protostar/compiler/text_format.rb
170
+ - lib/protostar/compiler/validator.rb
171
+ - lib/protostar/diagnostics.rb
172
+ - lib/protostar/diagnostics/codes.rb
173
+ - lib/protostar/diagnostics/formats.rb
174
+ - lib/protostar/diagnostics/renderer.rb
175
+ - lib/protostar/diagnostics/source.rb
176
+ - lib/protostar/dsl.rb
177
+ - lib/protostar/enum.rb
178
+ - lib/protostar/errors.rb
179
+ - lib/protostar/google/protobuf/any_pb.rb
180
+ - lib/protostar/google/protobuf/api_pb.rb
181
+ - lib/protostar/google/protobuf/compiler/plugin_pb.rb
182
+ - lib/protostar/google/protobuf/descriptor_pb.rb
183
+ - lib/protostar/google/protobuf/duration_pb.rb
184
+ - lib/protostar/google/protobuf/empty_pb.rb
185
+ - lib/protostar/google/protobuf/field_mask_pb.rb
186
+ - lib/protostar/google/protobuf/source_context_pb.rb
187
+ - lib/protostar/google/protobuf/struct_pb.rb
188
+ - lib/protostar/google/protobuf/timestamp_pb.rb
189
+ - lib/protostar/google/protobuf/type_pb.rb
190
+ - lib/protostar/google/protobuf/wrappers_pb.rb
191
+ - lib/protostar/google_protobuf_shim.rb
192
+ - lib/protostar/json.rb
193
+ - lib/protostar/json/encoder.rb
194
+ - lib/protostar/json/errors.rb
195
+ - lib/protostar/json/parser.rb
196
+ - lib/protostar/json/path.rb
197
+ - lib/protostar/lint.rb
198
+ - lib/protostar/lint/command.rb
199
+ - lib/protostar/lint/config.rb
200
+ - lib/protostar/lint/context.rb
201
+ - lib/protostar/lint/directives.rb
202
+ - lib/protostar/lint/fixer.rb
203
+ - lib/protostar/lint/naming.rb
204
+ - lib/protostar/lint/rule.rb
205
+ - lib/protostar/lint/rules/comment_enum.rb
206
+ - lib/protostar/lint/rules/comment_enum_value.rb
207
+ - lib/protostar/lint/rules/comment_field.rb
208
+ - lib/protostar/lint/rules/comment_message.rb
209
+ - lib/protostar/lint/rules/comment_rpc.rb
210
+ - lib/protostar/lint/rules/comment_service.rb
211
+ - lib/protostar/lint/rules/edition_recommended.rb
212
+ - lib/protostar/lint/rules/enum_first_value_zero.rb
213
+ - lib/protostar/lint/rules/enum_pascal_case.rb
214
+ - lib/protostar/lint/rules/enum_value_prefix.rb
215
+ - lib/protostar/lint/rules/enum_value_upper_snake_case.rb
216
+ - lib/protostar/lint/rules/enum_zero_value_suffix.rb
217
+ - lib/protostar/lint/rules/field_lower_snake_case.rb
218
+ - lib/protostar/lint/rules/field_not_required.rb
219
+ - lib/protostar/lint/rules/field_number_reuse_risk.rb
220
+ - lib/protostar/lint/rules/field_numbers_hot_range.rb
221
+ - lib/protostar/lint/rules/file_lower_snake_case.rb
222
+ - lib/protostar/lint/rules/import_no_public.rb
223
+ - lib/protostar/lint/rules/import_no_weak.rb
224
+ - lib/protostar/lint/rules/import_used.rb
225
+ - lib/protostar/lint/rules/message_pascal_case.rb
226
+ - lib/protostar/lint/rules/no_deprecated_features.rb
227
+ - lib/protostar/lint/rules/no_groups.rb
228
+ - lib/protostar/lint/rules/oneof_lower_snake_case.rb
229
+ - lib/protostar/lint/rules/package_defined.rb
230
+ - lib/protostar/lint/rules/package_directory_match.rb
231
+ - lib/protostar/lint/rules/package_lower_snake_case.rb
232
+ - lib/protostar/lint/rules/package_same_directory.rb
233
+ - lib/protostar/lint/rules/package_version_suffix.rb
234
+ - lib/protostar/lint/rules/reserved_names_with_numbers.rb
235
+ - lib/protostar/lint/rules/rpc_pascal_case.rb
236
+ - lib/protostar/lint/rules/rpc_request_response_unique.rb
237
+ - lib/protostar/lint/rules/rpc_request_standard_name.rb
238
+ - lib/protostar/lint/rules/rpc_response_standard_name.rb
239
+ - lib/protostar/lint/rules/service_pascal_case.rb
240
+ - lib/protostar/lint/rules/service_suffix.rb
241
+ - lib/protostar/lint/rules/syntax_specified.rb
242
+ - lib/protostar/lint/runner.rb
243
+ - lib/protostar/message.rb
244
+ - lib/protostar/message/accessors.rb
245
+ - lib/protostar/message/coercion.rb
246
+ - lib/protostar/message/field_info.rb
247
+ - lib/protostar/message/reflection.rb
248
+ - lib/protostar/plugin.rb
249
+ - lib/protostar/schema.rb
250
+ - lib/protostar/schema/default_value.rb
251
+ - lib/protostar/schema/descriptor.rb
252
+ - lib/protostar/schema/draft.rb
253
+ - lib/protostar/schema/draft/copy.rb
254
+ - lib/protostar/schema/draft/resolution.rb
255
+ - lib/protostar/schema/enum.rb
256
+ - lib/protostar/schema/extension_range.rb
257
+ - lib/protostar/schema/features.rb
258
+ - lib/protostar/schema/field.rb
259
+ - lib/protostar/schema/file.rb
260
+ - lib/protostar/schema/freezer.rb
261
+ - lib/protostar/schema/message.rb
262
+ - lib/protostar/schema/oneof.rb
263
+ - lib/protostar/schema/options.rb
264
+ - lib/protostar/schema/pool.rb
265
+ - lib/protostar/schema/proto.rb
266
+ - lib/protostar/schema/resolver.rb
267
+ - lib/protostar/schema/service.rb
268
+ - lib/protostar/schema/source_info.rb
269
+ - lib/protostar/short_names/any.rb
270
+ - lib/protostar/short_names/duration.rb
271
+ - lib/protostar/short_names/empty.rb
272
+ - lib/protostar/short_names/field_mask.rb
273
+ - lib/protostar/short_names/struct.rb
274
+ - lib/protostar/short_names/timestamp.rb
275
+ - lib/protostar/short_names/wrappers.rb
276
+ - lib/protostar/text.rb
277
+ - lib/protostar/text/extensions.rb
278
+ - lib/protostar/text/parser.rb
279
+ - lib/protostar/text/printer.rb
280
+ - lib/protostar/text/tokenizer.rb
281
+ - lib/protostar/types.rb
282
+ - lib/protostar/unknown_field.rb
283
+ - lib/protostar/version.rb
284
+ - lib/protostar/view.rb
285
+ - lib/protostar/view/generator.rb
286
+ - lib/protostar/view/map.rb
287
+ - lib/protostar/view/repeated.rb
288
+ - lib/protostar/view/scan.rb
289
+ - lib/protostar/well_known.rb
290
+ - lib/protostar/well_known/any.rb
291
+ - lib/protostar/well_known/duration.rb
292
+ - lib/protostar/well_known/list_value.rb
293
+ - lib/protostar/well_known/struct.rb
294
+ - lib/protostar/well_known/timestamp.rb
295
+ - lib/protostar/well_known/value.rb
296
+ - lib/protostar/wire.rb
297
+ - lib/protostar/wire/io_source.rb
298
+ - lib/protostar/wire/reader.rb
299
+ - lib/protostar/wire/writer.rb
300
+ - shims/google-protobuf/lib/google/protobuf.rb
301
+ - shims/google-protobuf/lib/google/protobuf/any_pb.rb
302
+ - shims/google-protobuf/lib/google/protobuf/api_pb.rb
303
+ - shims/google-protobuf/lib/google/protobuf/compiler/plugin_pb.rb
304
+ - shims/google-protobuf/lib/google/protobuf/descriptor_pb.rb
305
+ - shims/google-protobuf/lib/google/protobuf/descriptor_pool.rb
306
+ - shims/google-protobuf/lib/google/protobuf/descriptors.rb
307
+ - shims/google-protobuf/lib/google/protobuf/duration_pb.rb
308
+ - shims/google-protobuf/lib/google/protobuf/empty_pb.rb
309
+ - shims/google-protobuf/lib/google/protobuf/field_mask_pb.rb
310
+ - shims/google-protobuf/lib/google/protobuf/internal/convert.rb
311
+ - shims/google-protobuf/lib/google/protobuf/internal/extensions.rb
312
+ - shims/google-protobuf/lib/google/protobuf/internal/json.rb
313
+ - shims/google-protobuf/lib/google/protobuf/internal/well_known.rb
314
+ - shims/google-protobuf/lib/google/protobuf/map.rb
315
+ - shims/google-protobuf/lib/google/protobuf/message.rb
316
+ - shims/google-protobuf/lib/google/protobuf/message_exts.rb
317
+ - shims/google-protobuf/lib/google/protobuf/plugin_pb.rb
318
+ - shims/google-protobuf/lib/google/protobuf/repeated_field.rb
319
+ - shims/google-protobuf/lib/google/protobuf/source_context_pb.rb
320
+ - shims/google-protobuf/lib/google/protobuf/struct_pb.rb
321
+ - shims/google-protobuf/lib/google/protobuf/timestamp_pb.rb
322
+ - shims/google-protobuf/lib/google/protobuf/type_pb.rb
323
+ - shims/google-protobuf/lib/google/protobuf/well_known_types.rb
324
+ - shims/google-protobuf/lib/google/protobuf/wrappers_pb.rb
325
+ - shims/google-protobuf/lib/google/protobuf_ffi.rb
326
+ - shims/google-protobuf/lib/google/protobuf_native.rb
327
+ - sig/protostar.rbs
328
+ - sig/protostar/google/protobuf/any_pb.rbs
329
+ - sig/protostar/google/protobuf/api_pb.rbs
330
+ - sig/protostar/google/protobuf/compiler/plugin_pb.rbs
331
+ - sig/protostar/google/protobuf/descriptor_pb.rbs
332
+ - sig/protostar/google/protobuf/duration_pb.rbs
333
+ - sig/protostar/google/protobuf/empty_pb.rbs
334
+ - sig/protostar/google/protobuf/field_mask_pb.rbs
335
+ - sig/protostar/google/protobuf/source_context_pb.rbs
336
+ - sig/protostar/google/protobuf/struct_pb.rbs
337
+ - sig/protostar/google/protobuf/timestamp_pb.rbs
338
+ - sig/protostar/google/protobuf/type_pb.rbs
339
+ - sig/protostar/google/protobuf/wrappers_pb.rbs
340
+ - sig/protostar/lint.rbs
341
+ homepage: https://github.com/julik/protostar
342
+ licenses:
343
+ - MIT
344
+ metadata:
345
+ homepage_uri: https://github.com/julik/protostar
346
+ source_code_uri: https://github.com/julik/protostar
347
+ changelog_uri: https://github.com/julik/protostar/blob/main/CHANGELOG.md
348
+ rubygems_mfa_required: 'true'
349
+ rdoc_options: []
350
+ require_paths:
351
+ - lib
352
+ required_ruby_version: !ruby/object:Gem::Requirement
353
+ requirements:
354
+ - - ">="
355
+ - !ruby/object:Gem::Version
356
+ version: 3.2.0
357
+ required_rubygems_version: !ruby/object:Gem::Requirement
358
+ requirements:
359
+ - - ">="
360
+ - !ruby/object:Gem::Version
361
+ version: '0'
362
+ requirements: []
363
+ rubygems_version: 3.6.2
364
+ specification_version: 4
365
+ summary: "(Slightly unhinged) pure Ruby protobufs"
366
+ test_files: []