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 784dea4d8b83b40cde4efcc7e3394941b0fd60a8 —
view raw patch
| File | Status | + | − |
|---|---|---|---|
.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 |