~bigbes/tarantool-protobuf: 784dea4d

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.

Eugene Blikh <bigbes@gmail.com> — 2026-05-15 10:39:13 UTC

Commit 784dea4d8b83b40cde4efcc7e3394941b0fd60a8view raw patch

64 changed file(s)

FileStatus+
.gitignore A +9
Makefile A +98
PLAN.md A +431
README.md A +159
bench/baseline.json A +35
bench/bench.lua A +362
cmd/conformance-runner.lua A +54
cmd/conformance/core.lua A +107
cmd/protoc-gen-tarantool/internal/gen/gen.go A +437
cmd/protoc-gen-tarantool/internal/gen/inline.go A +603
cmd/protoc-gen-tarantool/internal/gen/name.go A +82
cmd/protoc-gen-tarantool/internal/gen/options.go A +34
cmd/protoc-gen-tarantool/internal/gen/service.go A +202
cmd/protoc-gen-tarantool/internal/gen/types.go A +44
cmd/protoc-gen-tarantool/main.go A +90
examples/expected/full/conformance/conformance_pb.lua A +622
examples/expected/full/hello/hello_pb.lua A +993
examples/expected/full/protobuf_test_messages/proto3/test_messages_proto3_pb.lua A +3621
examples/expected/runtime/conformance/conformance_pb.lua A +113
examples/expected/runtime/hello/hello_pb.lua A +248
examples/expected/runtime/protobuf_test_messages/proto3/test_messages_proto3_pb.lua A +257
examples/proto/hello.proto A +91
go.mod A +5
go.sum A +6
options/tarantool/tarantool.proto A +21
runtime/pb/codec.lua A +424
runtime/pb/dynamic.lua A +235
runtime/pb/grpc.lua A +302
runtime/pb/init.lua A +109
runtime/pb/json.lua A +544
runtime/pb/parser.lua A +347
runtime/pb/wire.lua A +368
runtime/pb/wkt.lua A +566
test/any_fieldmask_test.lua A +169
test/conformance/proto/conformance.proto A +173
test/conformance/proto/test_messages_proto3.proto A +272
test/conformance_test.lua A +282
test/dynamic_test.lua A +135
test/grpc_streaming_test.lua A +302
test/interop/fixtures/address_basic.bin A +3
test/interop/fixtures/address_basic.txtpb A +4
test/interop/fixtures/address_with_optional.bin BIN A
test/interop/fixtures/address_with_optional.txtpb A +4
test/interop/fixtures/event_any_fieldmask.bin A +7
test/interop/fixtures/event_any_fieldmask.txtpb A +11
test/interop/fixtures/event_struct_value.bin BIN A
test/interop/fixtures/event_struct_value.txtpb A +15
test/interop/fixtures/person_map.bin A +6
test/interop/fixtures/person_map.txtpb A +5
test/interop/fixtures/person_nested.bin A +6
test/interop/fixtures/person_nested.txtpb A +18
test/interop/fixtures/person_packed.bin A +2
test/interop/fixtures/person_packed.txtpb A +11
test/interop/fixtures/person_wires.bin BIN A
test/interop/fixtures/person_wires.txtpb A +7
test/interop/fixtures/result_oneof_msg.bin A +2
test/interop/fixtures/result_oneof_msg.txtpb A +3
test/interop/fixtures/result_oneof_text.bin A +1
test/interop/fixtures/result_oneof_text.txtpb A +3
test/interop_test.lua A +88
test/json_test.lua A +233
test/protobuf_test.lua A +439
test/struct_value_test.lua A +215
test/unknown_test.lua A +127