grpc-kv-examples 2025-01-22
Initial multi-language gRPC KV repository with mTLS support across 15 languages
169 files · 17,794+ · 504-

Multi-language gRPC client/server implementations

9 files changed
  • go-kv-client.go Go gRPC client with mTLS certificate loading and server cert fetching
  • go-kv-server.go Go gRPC server with full mTLS support
  • example-py-server.py Python gRPC server with structured logging and mTLS
  • example-py-client.py Python gRPC client with certificate helper integration
  • rb-kv-client.rb Ruby gRPC client with OpenSSL certificate handling
  • rb-kv-server.rb Ruby gRPC server with mTLS credentials
  • Program.cs C# gRPC client with custom certificate validation
  • client.rs Rust gRPC client using tonic
  • server.rs Rust gRPC server using tonic
  • Created gRPC KV service implementations in 15 languages testing cross-language TLS compatibility instantiate architectural
    4 files
    • go-kv-client.go
    • example-py-server.py
    • rb-kv-client.rb
    • Program.cs
  • All implementations use a common protobuf definition with Get and Put RPCs instantiate architectural
    1 file
    • kv.proto

mTLS certificate infrastructure

5 files changed
  • gen-certs.sh Certificate generation script for RSA and EC curves
  • ec-secp256r1-mtls-client.crt P-256 client certificate
  • ec-secp384r1-mtls-server.crt P-384 server certificate
  • ec-secp521r1-mtls-client.crt P-521 client certificate
  • rsa-2048-mtls-server.crt RSA-2048 server certificate
  • Generated mTLS certificates for secp256r1, secp384r1, secp521r1, and RSA-2048 curves instantiate behavioral
    3 files
    • gen-certs.sh
    • ec-secp256r1-mtls-client.crt
    • ec-secp521r1-mtls-client.crt

Environment and CI setup

3 files changed
  • env.sh Environment setup loading certificates and configuring endpoints per language
  • prove-grpc-fix.yml CI workflow using Docker to prove gRPC elliptic curve fix across languages
  • Dockerfile Multi-stage Docker build with all language runtimes for testing
  • env.sh loads certificate PEM content into environment variables and sets up per-language aliases instantiate internal
    1 file
    • env.sh
  • CI workflow builds Docker environment, compiles patched gRPC, and runs cross-language comparison instantiate behavioral
    2 files
    • prove-grpc-fix.yml
    • Dockerfile

Documentation and testing scripts

5 files changed
  • README.md Project overview and language-specific setup instructions
  • COMPARISON-GUIDE.md Guide for comparing baseline vs patched gRPC behavior
  • COMPATIBILITY-MATRIX.md Cross-language TLS compatibility matrix
  • test-compatibility.sh Script for running cross-language compatibility tests
  • full-compatibility-test.sh Full matrix test across all languages and curves
  • Added compatibility matrix documenting which language/curve combinations work specify external
    2 files
    • COMPATIBILITY-MATRIX.md
    • COMPARISON-GUIDE.md