polyglot_rs 2.0.2

A high-performance serialization framework used for encoding and decoding arbitrary datastructures across languages.
Documentation
BENCHCOUNT ?= 10

install:
	- go install ../protoc-gen-go-polyglot
	- go install github.com/planetscale/vtprotobuf/cmd/protoc-gen-go-vtproto@latest
	- go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28

generate:
	- mkdir -p polyglot
	- protoc --go-polyglot_out=polyglot bench.proto
	- mkdir -p vtproto
	- protoc --go_out=vtproto --go-vtproto_out=vtproto bench.proto

benchmark-polyglot: benchmark-polyglot-cmp
	- go run -mod=mod golang.org/x/perf/cmd/benchstat bench.txt
	- go mod tidy
	- rm -rf bench.txt

benchmark-polyglot-cmp:
	- go test -bench=. -timeout=24h -count=$(BENCHCOUNT) ./... -test.short | tee bench.txt

benchmark-polyglot-long:
	- go test -bench=. -timeout=24h -count=$(BENCHCOUNT) ./... | tee bench.txt
	- go run -mod=mod golang.org/x/perf/cmd/benchstat bench.txt
	- go mod tidy
	- rm -rf bench.txt

benchmark-vtproto: benchmark-vtproto-cmp
	- go run -mod=mod golang.org/x/perf/cmd/benchstat bench.txt
	- go mod tidy
	- rm -rf bench.txt

benchmark-vtproto-cmp:
	- go test -bench=. -timeout=24h -count=$(BENCHCOUNT) ./... -tags=vtproto -test.short | tee bench.txt

benchmark-vtproto-long:
	- go test -bench=. -timeout=24h -count=$(BENCHCOUNT) ./... -tags=vtproto | tee bench.txt
	- go run -mod=mod golang.org/x/perf/cmd/benchstat bench.txt
	- go mod tidy
	- rm -rf bench.txt

leaks:
	- go test -bench=. -gcflags="-m=2" ./...