~bigbes/tarantool

tarantool-protobuf

784dea4d8b83b40cde4efcc7e3394941b0fd60a8 — Eugene Blikh 3 months ago
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.
64 files changed, 14162 insertions(+), 0 deletions(-)

A .gitignore
A Makefile
A PLAN.md
A README.md
A bench/baseline.json
A bench/bench.lua
A cmd/conformance-runner.lua
A cmd/conformance/core.lua
A cmd/protoc-gen-tarantool/internal/gen/gen.go
A cmd/protoc-gen-tarantool/internal/gen/inline.go
A cmd/protoc-gen-tarantool/internal/gen/name.go
A cmd/protoc-gen-tarantool/internal/gen/options.go
A cmd/protoc-gen-tarantool/internal/gen/service.go
A cmd/protoc-gen-tarantool/internal/gen/types.go
A cmd/protoc-gen-tarantool/main.go
A examples/expected/full/conformance/conformance_pb.lua
A examples/expected/full/hello/hello_pb.lua
A examples/expected/full/protobuf_test_messages/proto3/test_messages_proto3_pb.lua
A examples/expected/runtime/conformance/conformance_pb.lua
A examples/expected/runtime/hello/hello_pb.lua
A examples/expected/runtime/protobuf_test_messages/proto3/test_messages_proto3_pb.lua
A examples/proto/hello.proto
A go.mod
A go.sum
A options/tarantool/tarantool.proto
A runtime/pb/codec.lua
A runtime/pb/dynamic.lua
A runtime/pb/grpc.lua
A runtime/pb/init.lua
A runtime/pb/json.lua
A runtime/pb/parser.lua
A runtime/pb/wire.lua
A runtime/pb/wkt.lua
A test/any_fieldmask_test.lua
A test/conformance/proto/conformance.proto
A test/conformance/proto/test_messages_proto3.proto
A test/conformance_test.lua
A test/dynamic_test.lua
A test/grpc_streaming_test.lua
A test/interop/fixtures/address_basic.bin
A test/interop/fixtures/address_basic.txtpb
A test/interop/fixtures/address_with_optional.bin
A test/interop/fixtures/address_with_optional.txtpb
A test/interop/fixtures/event_any_fieldmask.bin
A test/interop/fixtures/event_any_fieldmask.txtpb
A test/interop/fixtures/event_struct_value.bin
A test/interop/fixtures/event_struct_value.txtpb
A test/interop/fixtures/person_map.bin
A test/interop/fixtures/person_map.txtpb
A test/interop/fixtures/person_nested.bin
A test/interop/fixtures/person_nested.txtpb
A test/interop/fixtures/person_packed.bin
A test/interop/fixtures/person_packed.txtpb
A test/interop/fixtures/person_wires.bin
A test/interop/fixtures/person_wires.txtpb
A test/interop/fixtures/result_oneof_msg.bin
A test/interop/fixtures/result_oneof_msg.txtpb
A test/interop/fixtures/result_oneof_text.bin
A test/interop/fixtures/result_oneof_text.txtpb
A test/interop_test.lua
A test/json_test.lua
A test/protobuf_test.lua
A test/struct_value_test.lua
A test/unknown_test.lua
This diff is too large to display. Try viewing the raw diff instead.