Comprehensive gRPC examples and tutorials across 12 programming languages
Learn gRPC with comprehensive tutorials, examples, and best practices for Java, Go, Python, Node.js, Rust, C++, C#, Kotlin, Swift, Dart, PHP, and TypeScript
A comprehensive collection of gRPC examples and tutorials covering microservices, distributed systems, and modern API development across multiple programming languages.
This repository demonstrates comparable gRPC implementations across 12 programming languages, with Docker, Kubernetes, gateway, service mesh, TLS, and observability examples. It is a learning and interoperability repository rather than a drop-in production platform.
On macOS 26+ with Apple silicon, the Dockerfile-based build and run scripts can use Apple's container OCI runtime; see docker/CONTAINER_RUNTIME.md.
Each implementation covers the same four RPC shapes and shared protobuf contract. Ecosystem-specific capabilities and verification status can differ; see the feature parity matrix for the audited details.
| No. | Language | gRPC Library | Recommended IDE |
|---|---|---|---|
| 1 | C++ | gRPC | CLion |
| 2 | Rust | Tonic | RustRover |
| 3 | Java | gRPC-Java | IntelliJ IDEA |
| 4 | Go | gRPC-Go | GoLand |
| 5 | C# | gRPC-dotnet | Rider |
| 6 | Python | grpcio | PyCharm |
| 7 | Node.js | @grpc/grpc-js | WebStorm |
| 8 | TypeScript | gRPC-js | WebStorm |
| 9 | Dart | grpc-dart | PyCharm |
| 10 | Kotlin | gRPC-Kotlin | IntelliJ IDEA |
| 11 | Swift | gRPC-Swift | Xcode |
| 12 | PHP | gRPC-PHP | PhpStorm |
- Unary RPC - Simple request-response (like HTTP REST)
- Server Streaming - One request, multiple responses
- Client Streaming - Multiple requests, one response
- Bidirectional Streaming - Both sides send multiple messages independently
- Microservices - Service-to-service communication
- API Gateway - HTTP/REST to gRPC transcoding
- Load Balancing - Client-side and server-side strategies
- Service Discovery - Consul, etcd, Kubernetes DNS integration
- Resilience - Circuit breakers, retries, fault tolerance
| Language | Headers | TLS | Proxy | Docker | Build System | Unit Testing | Logging |
|---|---|---|---|---|---|---|---|
| Java | ✅ | ✅ mTLS | ✅ | ✅ | Maven | JUnit 5 | Log4j2 |
| Go | ✅ | ✅ mTLS | ✅ | ✅ | Go Modules | Go Testing | Logrus |
| Node.js | ✅ | ✅ TLS | ✅ | ✅ | npm | Mocha | Winston |
| TypeScript | ✅ | ✅ TLS | ✅ | ✅ | npm & TSC | Mocha / ts-mocha | Winston |
| Python | ✅ | ✅ mTLS | ✅ | ✅ | pip | unittest | logging |
| Rust | ✅ | ✅ mTLS | ✅ | ✅ | Cargo | Rust Test | log4rs |
| C++ | ✅ | ✅ mTLS | ✅ | ✅ | Bazel/CMake | Catch2 | glog |
| C# | ✅ | ✅ mTLS | ✅ | ✅ | NuGet | NUnit | log4net |
| Kotlin | ✅ | ✅ mTLS | ✅ | ✅ | Gradle | JUnit 5 | Log4j2 |
| Swift | ✅ | ✅ TLS | ✅ | ✅ | SPM | Swift Testing | swift-log |
| Dart | ✅ | ✅ TLS | ✅ | ✅ | Pub | Test | Logger |
| PHP | ✅ | ✅ mTLS | ✅ | ✅ | Composer | PHPUnit | Monolog |
The matrix above describes repository implementation paths. Runtime support still depends on the host toolchain and upstream libraries; the parity matrix records the latest commands and known platform blockers.