runtime: parser + dynamic accept proto2 sources Parser now captures `required=true` and `default_value=…` from the proto2 keywords (instead of dropping `required` silently and ignoring field options). Dynamic descriptor builder reads `parsed.syntax`, flips the repeated-scalar packing default for proto2, and calls `codec.compile_writers/compile_readers` so the per-field required-writer specialization actually fires — without that the generic encode_field path silently elides missing required fields. 64-bit-int defaults are coerced into the appropriate cdata type inside `coerce_default` so the codec's value-comparison rules match what generated code emits. Adds 7 dynamic-mode luatest cases including a static-vs-dynamic byte-parity check. 725 tests pass.
Initial commit: protoc-gen-tarantool plugin + pb runtime A protoc plugin (Go) and a pure-Lua + LuaJIT-FFI runtime that give Tarantool a complete proto3 + gRPC stack. Two codegen modes (full inline / runtime descriptor), 226-test luatest suite, 18-fixture mainline-protoc interop corpus, JSON codec, well-known types, gRPC client/server factories, runtime .proto parser, microbench harness with allocation regression gate. Covers PLAN.md M1-M5. Module is `pb` (not `protobuf`) to avoid colliding with Tarantool's built-in encode-only `protobuf` module.