grpc-docker-library
grpc-docker-library copied to clipboard
add dart grpc
Would you be open to adding dart grpc ?
Its now quite mature, and also gettign grpc-web soon. I typically use it to do grpc between golang servers and dart clients in flutter.
REPO: https://github.com/grpc/grpc-dart
Tutorial: https://grpc.io/docs/tutorials/basic/dart.html
Here is the tutorial using a Makefile for golang and dart talking over grpc.
# Get golang server and dart client talking over grpc.
# dart Walkthrough : https://grpc.io/docs/tutorials/basic/dart.html
# go equivalent: https://github.com/grpc/grpc-go/tree/master/examples/route_guide
DART_LIBPATH=github.com/grpc/grpc-dart
DART_LIBGOPATH=$(GOPATH)/src/$(DART_LIBPATH)
GO_LIBPATH=google.golang.org/grpc
GO_LIBGOPATH=$(GOPATH)/src/$(GO_LIBPATH)
print:
@echo
@echo DART_LIBPATH $(DART_LIBPATH)
@echo DART_LIBGOPATH $(DART_LIBGOPATH)
@echo
@echo GO_LIBPATH $(GO_LIBPATH)
@echo GO_LIBGOPATH $(GO_LIBGOPATH)
dep-os:
#go get golang.org/x/mobile/cmd/gomobile
#gomobile init # it might take a few minutes
# get the dart protoc plugin
pub global activate protoc_plugin
dep:
go get -u $(GO_LIBPATH)
go get -u $(DART_LIBPATH)
dep-clean:
rm -rf $(DART_LIBGOPATH)
rm -rf $(GO_LIBGOPATH)
## Golang stuff
go-open-code:
code $(GO_LIBGOPATH)/examples/route_guide
go-build:
#cd $(GO_LIBGOPATH)/examples/route_guide && protoc -I protos/ routeguide/route_guide.proto --go_out=grpc:routeguide/generated
cd $(GO_LIBGOPATH)/examples/route_guide/server && go generate
go-run-server:
cd $(GO_LIBGOPATH)/examples/route_guide/server && go run server.go -json_db_file $(GO_LIBGOPATH)/examples/route_guide/testdata/route_guide_db.json -port 8080 -tls=true
go-run-client:
cd $(GO_LIBGOPATH)/examples/route_guide/client && go run client.go -server_addr 127.0.0.1:8080 -tls=true
## Flutter stuff
dart-open-code:
code $(DART_LIBGOPATH)
dart-build:
cd $(DART_LIBGOPATH)/example/route_guide && pub get
# gen dart server
cd $(DART_LIBGOPATH)/example/route_guide && protoc -I protos/ protos/route_guide.proto --dart_out=grpc:lib/src/generated
# gen golang server
#cd $(DART_LIBGOPATH)/example/route_guide && protoc -I protos/ protos/route_guide.proto --go_out=grpc:go/generated
dart-run-server:
# run server
cd $(DART_LIBGOPATH)/example/route_guide && dart bin/server.dart
dart-run-client:
# run server
cd $(DART_LIBGOPATH)/example/route_guide && dart bin/client.dart -tls=true
ft-build-ios:
# do this to bootstrap IOS befroe you start coding.
cd caddy/example && flutter build ios --no-codesign
ft-open-ios:
# open xcode proj.
open caddy/example/ios/Runner.xcworkspace
ft-run-ios:
cd caddy/example && flutter run
```
Would be nice to have full dart lang too. On Dart client and Dart server (VM) sides.