Home

Awesome

<!-- markdownlint-disable MD033 MD045 -->

Hello gRPC

Simple server and client examples showcasing gRPC features(including proxy and propagate, running in containers and kubernetes) with:

No.LangLibIDE
1C++grpcCLion
2RusttonicRustRover
3Javagrpc-javaIDEA
4Gogrpc-goGoLand
5C#grpc-dotnetRider
6PythongrpcioPyCharm
7Node.jsgrpc-jsWebStorm
8TypeScriptgrpc-jsWebStorm
9Dartgrpc-dartPyCharm
10Kotlingrpc-kotlinIDEA
11Swiftgrpc-swiftAppCode
12PHPgrpc-phpPhpStorm

:coffee: What is

grpc_diagram

No.Lang4 MODELSCollectionSleepRandomTimestampUUIDEnv
1javašŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
2gošŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
3nodejsšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
4typescriptšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
5pythonšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
6rustšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
7c++šŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
8c#šŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
9kotlinšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
10swiftšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
11dartšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
12phpšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽšŸŽ
No.LangHeaderTLSProxyDockerBuildUTLOG
1javašŸŽšŸŽšŸŽšŸŽmavenjunit5log4j2
2gošŸŽšŸŽšŸŽšŸŽ(mod)(testing)logrus
3nodejsšŸŽšŸ„‘šŸŽšŸŽnpmmochawinston
4typescriptšŸŽšŸšŸšŸŽyarn&tscwinston
5pythonšŸŽšŸŽšŸŽšŸŽpip(unittest)(logging)
6rustšŸŽšŸŽšŸŽšŸŽcargo(test)log4rs
7c++šŸŽšŸŽšŸŽšŸŽbazel/cmakeCatch2glog
8c#šŸŽšŸŽšŸŽšŸŽnugetNUnitlog4net
9kotlinšŸŽšŸŽšŸŽšŸŽgradlejunit5log4j2
10swiftšŸŽšŸšŸšŸŽspm(XCTest)swift-log
11dartšŸŽšŸšŸšŸŽpubtestlogger
12phpšŸŽšŸšŸšŸŽcomposerphpunitlog4php

šŸŽ :apple: done šŸ :green_apple: unimplemented šŸ„‘ :avocado: known issues

:coffee: How to use

1 Envs

2 Containers

Running in containers sample:

client(kotlin) -[tls]:8881-> server1(java) -[tls]:8882-> server2(golang) -[tls]:8883-> server3(rust)

# server3(golang):8883
docker run --rm --name grpc_server_go -d \
 -p 8883:8883 \
 -e GRPC_SERVER_PORT=8883 \
 feuyeux/grpc_server_rust:1.0.0

# server2(rust):8882
docker run --rm --name grpc_server_rust -d \
 -p 8882:8882 \
 -e GRPC_SERVER_PORT=8882 \
 -e GRPC_HELLO_BACKEND=$(ipconfig getifaddr en0) \
 -e GRPC_HELLO_BACKEND_PORT=8883 \
 feuyeux/grpc_server_go:1.0.0

# server1(java):8881
docker run --rm --name grpc_server_java -d \
 -p 8881:8881 \
 -e GRPC_SERVER_PORT=8881 \
 -e GRPC_HELLO_BACKEND=$(ipconfig getifaddr en0) \
 -e GRPC_HELLO_BACKEND_PORT=8882 \
 feuyeux/grpc_server_java:1.0.0

# client(kotlin)
docker run --rm --name grpc_client_kotlin \
 -e GRPC_SERVER=$(ipconfig getifaddr en0) \
 -e GRPC_SERVER_PORT=8881 \
 feuyeux/grpc_client_kotlin:1.0.0

Docker-Mesh-Kube

3 Logs

Enable gRpc Debugging

export GRPC_VERBOSITY=DEBUG
export GRPC_TRACE=all

:coffee: Recommend

:coffee: Stars

Star History Chart

<!-- [32]: <https://xcodereleases.com/> -->