[フレーム]
PDF, PPTX14,639 views

gRPC Overview

gRPC is an open source RPC framework that makes it easy to build a distributed system across multiple languages. It uses HTTP/2 for transport, has features like streaming, load balancing and authentication built-in. It is used widely at Google and is now available open source with implementations in 10 languages. gRPC benefits from being layered on HTTP/2 for interoperability and has a pluggable architecture for advanced features like monitoring and proxies.

Download as PDF, PPTX
Google confidential │ Do not distribute Google confidential │ Do not distribute gRPC: A multi-platform RPC system Louis Ryan 26th February 2016
Google confidential │ Do not distribute Microservices at Google ~O(1010 ) RPCs per second. Images by Connie Zhou
Open source on Github for C, C++, Java, Node.js, Python, Ruby, Go, C#, PHP, Objective-C gRPC core gRPC java
OVERVIEW
gRPC is ... Open Source RPC framework that makes it easy to build a heterogenous distributed system. くろまる Free as in beer! (and licensing) くろまる Based on HTTP/2 today (multiplexed, works with the Internet) くろまる Payload agnostic (we’ve implemented proto) くろまる Streaming & Flow-Controlled くろまる Designed for harsh environments (timeout, lameducking, load-balancing, cancellation, ...) くろまる Support in 10 languages & first class mobile support くろまる Layered & Pluggable - Bring your own monitoring, auth, naming, load balancing ...
くろまる Core features and protocol are fully specified くろまる Rolled out for public Google APIs and widely used internally しろまる Lots of mobile adoption くろまる Approaching 1.0 (GA) release in all languages しろまる Stable APIs for key features くろまる Benefit of layering on top of HTTP/2 standard しろまる Interoperability with 3rd party proxies, tools, libraries.. しろまる WHATWG Fetch Project Status
Multiple Languages C/C++
HTTP/2HTTP/1.1 http://www.http2demo.io/
message SubscribeRequest { string topic = 1; } message Event { string details = 1; } service Topics { rpc Subscribe(SubscribeRequest) returns (stream Event); } IDL (Interface definition language) Describe once and generate interfaces for any language. Data Model Structure of the request and response. Binary format for network transmission. Wire Format Protocol Buffers
くろまる Three complete stacks: C/C++, Java and Go. くろまる Other language implementations wrap C-Runtime libraries. しろまる Hand-written wrappers to maintain language idioms くろまる Why wrap C? しろまる Development costs & Implementation Consistency しろまる Performance しろまる Feature evolution くろまる Easy one line installation via packages e.g npm install grpc Implementation Details
USE CASES
Google confidential │ Do not distribute Use Cases Client-server communication Access Google Cloud Services Build distributed applications Images by Connie Zhou • In data-centers • In public/private cloud • Clients and servers across: • Mobile • Web • Cloud • Also • Embedded systems, IoT • From GCP • From Android and iOS devices • From everywhere else
HOW TO GET STARTED
くろまる Install しろまる apt-get install protobuf-compiler しろまる pip install grpcio くろまる Write the protos くろまる Use protoc to generate service interfaces, messages & stubs くろまる Implement services in server くろまる Client instantiates stub くろまる Test & Deploy Typical development workflow
くろまる Auth & Security - TLS [Mutual], Plugin auth mechanism (e.g. OAuth) くろまる Proxies - nghttp2, haproxy, Google LB, Nginx (in progress) くろまる Client-side load balancing - etcd, Zookeeper, Eureka, ... くろまる Monitor & Trace - Zipkin, Google, DIY くろまる Mobile - Reconnect, QUIC くろまる Web - REST Adapter, WHATWG Fetch くろまる API Evolution - Protobuf, Versioning Advanced Deployment...
ARCHITECTURE
gRPC Core Http 2.0 SSL Code Generated API Planned in: C/C++, Java, GoApplication Layer Framework Layer Transport Layer Architecture: Native Implementation in Language
Generic Low Level API in C Python Code-Generated Language Idiomatic API Obj-C, C#, C++, ... Ruby PHPPython gRPC Core in C Http 2.0 SSL Language Bindings Code Generated Ruby PHP Obj-C, C#, C++,... Application Layer Framework Layer Transport Layer Architecture: Derived Stack
Wire Implementation across languages gRPC Core Http 2.0 SSL Code Generated API Auth Architecture and API Credentials API Auth-Credentials Implementation AuthPluginAPI
くろまる Generic mechanism for attaching metadata to requests and responses くろまる Built into the gRPC protocol - always available くろまる Plugin API to attach "bearer tokens" to requests for Auth しろまる OAuth2 access tokens しろまる OIDC Id Tokens くろまる Session state for specific Auth mechanisms is encapsulated in an Auth- credentials object Metadata and Auth
ADVANCED FEATURES
gRPC: Naming client nameserver servers name addresses, ...
gRPC: LoadBalancing client LB Controller servers Control RPC address-list
ROADMAP..sorta !
Initial Alpha Release Beta Release Stability, Easy installation, 1.0 release Q1 ‘16 Roadmap: Timeline Q2 ‘15 Q3 ‘15, Q4’15 Q1 ‘15 Q2 ‘16 Q3 16 Additional Alpha Releases Load balancing, Naming, Performance Debugging and Tracing, Browser support
Thank you! Thank you! Twitter: @grpcio Site: grpc.io Group: grpc-io@googlegroups.com

More Related Content

HTTP2 and gRPC
PPTX
HTTP2 and gRPC
REST vs gRPC: Battle of API's
PPTX
REST vs gRPC: Battle of API's
GRPC.pptx
PPTX
GRPC.pptx
gRPC and Microservices
PDF
gRPC and Microservices
Introduction to gRPC
PPTX
Introduction to gRPC
gRPC Design and Implementation
PDF
gRPC Design and Implementation
gRPC
PPT
gRPC vs REST: let the battle begin!
PDF
gRPC vs REST: let the battle begin!
HTTP2 and gRPC
HTTP2 and gRPC
REST vs gRPC: Battle of API's
REST vs gRPC: Battle of API's
GRPC.pptx
GRPC.pptx
gRPC and Microservices
gRPC and Microservices
Introduction to gRPC
Introduction to gRPC
gRPC Design and Implementation
gRPC Design and Implementation
gRPC
gRPC vs REST: let the battle begin!
gRPC vs REST: let the battle begin!

What's hot

Introduction to gRPC
PDF
Introduction to gRPC
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
PDF
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
gRPC with java
PDF
gRPC with java
Building microservices with grpc
PDF
Building microservices with grpc
gRPC
PDF
Building your First gRPC Service
PPTX
Building your First gRPC Service
Inter-Process Communication in Microservices using gRPC
PDF
Inter-Process Communication in Microservices using gRPC
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
PDF
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
What is gRPC introduction gRPC Explained
PPTX
What is gRPC introduction gRPC Explained
Introduction to gRPC (Application) Presentation
PPTX
Introduction to gRPC (Application) Presentation
Protocol Buffers
PPTX
Protocol Buffers
gRPC: The Story of Microservices at Square
PDF
gRPC: The Story of Microservices at Square
Power-up services with gRPC
PDF
Power-up services with gRPC
Deep dive into Kubernetes Networking
PDF
Deep dive into Kubernetes Networking
Introduction to Kubernetes
PPTX
Introduction to Kubernetes
Building High Performance APIs In Go Using gRPC And Protocol Buffers
PDF
Building High Performance APIs In Go Using gRPC And Protocol Buffers
Protocol Buffers
ODP
Protocol Buffers
Pub/Sub Messaging
PPTX
Pub/Sub Messaging
Microservices
PDF
Microservices
Introduction to the Container Network Interface (CNI)
PPTX
Introduction to the Container Network Interface (CNI)
Introduction to gRPC
Introduction to gRPC
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
gRPC with java
gRPC with java
Building microservices with grpc
Building microservices with grpc
gRPC
Building your First gRPC Service
Building your First gRPC Service
Inter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPC
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
What is gRPC introduction gRPC Explained
What is gRPC introduction gRPC Explained
Introduction to gRPC (Application) Presentation
Introduction to gRPC (Application) Presentation
Protocol Buffers
Protocol Buffers
gRPC: The Story of Microservices at Square
gRPC: The Story of Microservices at Square
Power-up services with gRPC
Power-up services with gRPC
Deep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
Introduction to Kubernetes
Introduction to Kubernetes
Building High Performance APIs In Go Using gRPC And Protocol Buffers
Building High Performance APIs In Go Using gRPC And Protocol Buffers
Protocol Buffers
Protocol Buffers
Pub/Sub Messaging
Pub/Sub Messaging
Microservices
Microservices
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)

Similar to gRPC Overview

CocoaConf: The Language of Mobile Software is APIs
PPTX
CocoaConf: The Language of Mobile Software is APIs
Microservices summit talk 1/31
PPTX
Microservices summit talk 1/31
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
PDF
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Fast and Reliable Swift APIs with gRPC
PDF
Fast and Reliable Swift APIs with gRPC
Usable APIs at Scale
PDF
Usable APIs at Scale
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
PDF
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
Grpc present
PPTX
Grpc present
What I learned about APIs in my first year at Google
PPTX
What I learned about APIs in my first year at Google
gRPC or Rest, why not both?
PDF
gRPC or Rest, why not both?
Implementing OpenAPI and GraphQL services with gRPC
PDF
Implementing OpenAPI and GraphQL services with gRPC
gRPC - RPC rebirth?
PDF
gRPC - RPC rebirth?
Build your next REST API with gRPC
PDF
Build your next REST API with gRPC
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
PDF
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
Build Great Networked APIs with Swift, OpenAPI, and gRPC
PDF
Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build microservice with gRPC in golang
PDF
Build microservice with gRPC in golang
gRPC services testing
PDF
gRPC services testing
"gRPC-Web: It’s All About Communication": Devoxx Ukraine 2019
PDF
"gRPC-Web: It’s All About Communication": Devoxx Ukraine 2019
Introduction to gRPC. Advantages and Disadvantages
PPTX
Introduction to gRPC. Advantages and Disadvantages
Building API Using GRPC And Scala
PPTX
Building API Using GRPC And Scala
Yotpo microservices
PPTX
Yotpo microservices
CocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIs
Microservices summit talk 1/31
Microservices summit talk 1/31
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Fast and Reliable Swift APIs with gRPC
Fast and Reliable Swift APIs with gRPC
Usable APIs at Scale
Usable APIs at Scale
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
Building Language Agnostic APIs with gRPC - JavaDay Istanbul 2017
Grpc present
Grpc present
What I learned about APIs in my first year at Google
What I learned about APIs in my first year at Google
gRPC or Rest, why not both?
gRPC or Rest, why not both?
Implementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPC
gRPC - RPC rebirth?
gRPC - RPC rebirth?
Build your next REST API with gRPC
Build your next REST API with gRPC
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build microservice with gRPC in golang
Build microservice with gRPC in golang
gRPC services testing
gRPC services testing
"gRPC-Web: It’s All About Communication": Devoxx Ukraine 2019
"gRPC-Web: It’s All About Communication": Devoxx Ukraine 2019
Introduction to gRPC. Advantages and Disadvantages
Introduction to gRPC. Advantages and Disadvantages
Building API Using GRPC And Scala
Building API Using GRPC And Scala
Yotpo microservices
Yotpo microservices

Recently uploaded

Behind the Scenes at Netflix: Distributed Systems & NoSQL Architecture.
PPTX
Behind the Scenes at Netflix: Distributed Systems & NoSQL Architecture.
Building Europe with Open LLMs - Manu Setälä.pptx
PPTX
Building Europe with Open LLMs - Manu Setälä.pptx
Towards efficient vision representation and coding standards for superior emb...
PDF
Towards efficient vision representation and coding standards for superior emb...
This Could Have Been a Slack Message: Diagnosing and Treating Bad Meetings
PPTX
This Could Have Been a Slack Message: Diagnosing and Treating Bad Meetings
NeuroXR: Current Research and Opportunities
PDF
NeuroXR: Current Research and Opportunities
sap 2016年09月14日_PP_MRPType_VB_Blogged.pptx
PPTX
sap 2016年09月14日_PP_MRPType_VB_Blogged.pptx
TechVerse Kent (Combining Tech, AI, Innovation and Creativity)
PPTX
TechVerse Kent (Combining Tech, AI, Innovation and Creativity)
AGV PROTOCOL BRAND KIT COMPLETE VIEW.pdf
PDF
AGV PROTOCOL BRAND KIT COMPLETE VIEW.pdf
Meta and Apple close to settling EU cases.pdf
PDF
Meta and Apple close to settling EU cases.pdf
Fairness and Bias in AI Ethics and Explainability
PDF
Fairness and Bias in AI Ethics and Explainability
Session 3 - Specialized AI Associate Series: AI Powered Automation through sp...
PDF
Session 3 - Specialized AI Associate Series: AI Powered Automation through sp...
Phishing for Answers: A Tech Filler Quiz.pdf
PDF
Phishing for Answers: A Tech Filler Quiz.pdf
Supercharge your JVM performance with Project Leyden and Spring Boot
PDF
Supercharge your JVM performance with Project Leyden and Spring Boot
Unleash the Power of Salesforce Winter ’26 Release.pdf
PDF
Unleash the Power of Salesforce Winter ’26 Release.pdf
Optimizing a Global Training Strategy: An LKQ Corporation Case Study
PDF
Optimizing a Global Training Strategy: An LKQ Corporation Case Study
Ask Me Anything About AI Assist: Practical Answers for Real Workflows
PDF
Ask Me Anything About AI Assist: Practical Answers for Real Workflows
TrustArc Webinar - The Future of Third-Party Privacy Risk: Trends, Tactics & ...
PDF
TrustArc Webinar - The Future of Third-Party Privacy Risk: Trends, Tactics & ...
Master Deck: GraphSummit Bengaluru (Oct 7)
PDF
Master Deck: GraphSummit Bengaluru (Oct 7)
A business case for open source: From lock-in to value.pdf
PDF
A business case for open source: From lock-in to value.pdf
Starting a Customer Education Program: Taking Your Training to Them
PDF
Starting a Customer Education Program: Taking Your Training to Them
Behind the Scenes at Netflix: Distributed Systems & NoSQL Architecture.
Behind the Scenes at Netflix: Distributed Systems & NoSQL Architecture.
Building Europe with Open LLMs - Manu Setälä.pptx
Building Europe with Open LLMs - Manu Setälä.pptx
Towards efficient vision representation and coding standards for superior emb...
Towards efficient vision representation and coding standards for superior emb...
This Could Have Been a Slack Message: Diagnosing and Treating Bad Meetings
This Could Have Been a Slack Message: Diagnosing and Treating Bad Meetings
NeuroXR: Current Research and Opportunities
NeuroXR: Current Research and Opportunities
sap 2016年09月14日_PP_MRPType_VB_Blogged.pptx
sap 2016年09月14日_PP_MRPType_VB_Blogged.pptx
TechVerse Kent (Combining Tech, AI, Innovation and Creativity)
TechVerse Kent (Combining Tech, AI, Innovation and Creativity)
AGV PROTOCOL BRAND KIT COMPLETE VIEW.pdf
AGV PROTOCOL BRAND KIT COMPLETE VIEW.pdf
Meta and Apple close to settling EU cases.pdf
Meta and Apple close to settling EU cases.pdf
Fairness and Bias in AI Ethics and Explainability
Fairness and Bias in AI Ethics and Explainability
Session 3 - Specialized AI Associate Series: AI Powered Automation through sp...
Session 3 - Specialized AI Associate Series: AI Powered Automation through sp...
Phishing for Answers: A Tech Filler Quiz.pdf
Phishing for Answers: A Tech Filler Quiz.pdf
Supercharge your JVM performance with Project Leyden and Spring Boot
Supercharge your JVM performance with Project Leyden and Spring Boot
Unleash the Power of Salesforce Winter ’26 Release.pdf
Unleash the Power of Salesforce Winter ’26 Release.pdf
Optimizing a Global Training Strategy: An LKQ Corporation Case Study
Optimizing a Global Training Strategy: An LKQ Corporation Case Study
Ask Me Anything About AI Assist: Practical Answers for Real Workflows
Ask Me Anything About AI Assist: Practical Answers for Real Workflows
TrustArc Webinar - The Future of Third-Party Privacy Risk: Trends, Tactics & ...
TrustArc Webinar - The Future of Third-Party Privacy Risk: Trends, Tactics & ...
Master Deck: GraphSummit Bengaluru (Oct 7)
Master Deck: GraphSummit Bengaluru (Oct 7)
A business case for open source: From lock-in to value.pdf
A business case for open source: From lock-in to value.pdf
Starting a Customer Education Program: Taking Your Training to Them
Starting a Customer Education Program: Taking Your Training to Them
In this document
Powered by AI

An introduction to gRPC and its multi-platform RPC system by Louis Ryan.

Overview of microservices at Google with an impressive ~10 billion RPCs per second.

gRPC supports many programming languages like C, C++, Java, Node.js, Python, Ruby, Go, C#, PHP, and Objective-C.

gRPC is an open-source RPC framework enabling heterogeneous distributed systems, based on HTTP/2.

Key features include API stability, mobile adoption, and layering on HTTP/2, approaching 1.0 release.

gRPC provides support for C, C++, and other languages wrapped around C-Runtime libraries.

Comparison of HTTP/2 and HTTP/1.1; describes IDL, data model, and wire format using Protocol Buffers.

Implementation details include multiple stacks and easy installation via package managers.

gRPC can be used for client-server communication, accessing services, and building distributed applications in various environments.

Steps to get started include installation, writing protos, and developing services.

Advanced features in deployment such as authentication, proxies, and monitoring tools.

Architecture overview including transport layer, application layer, and various language bindings.

gRPC provides mechanisms for attaching metadata and supports OAuth2 for authentication.

Introduction to additional advanced features of gRPC.

Overview of nameservers, client names, and load balancing mechanisms in gRPC.

The timeline for the gRPC roadmap detailing its alpha and beta releases.

Closing remarks and contact information for further engagement with gRPC.

gRPC Overview

  • 1.
    Google confidential │ Do not distribute Google confidential │ Do not distribute gRPC: A multi-platform RPC system Louis Ryan 26th February 2016
  • 2.
    Google confidential │ Do not distribute Microservices at Google ~O(1010 ) RPCs per second. Images by Connie Zhou
  • 3.
    Open source on Github for C, C++, Java, Node.js, Python, Ruby, Go, C#, PHP, Objective-C gRPC core gRPC java
  • 4.
  • 5.
    gRPC is ... Open Source RPC framework that makes it easy to build a heterogenous distributed system. くろまる Free as in beer! (and licensing) くろまる Based on HTTP/2 today (multiplexed, works with the Internet) くろまる Payload agnostic (we’ve implemented proto) くろまる Streaming & Flow-Controlled くろまる Designed for harsh environments (timeout, lameducking, load-balancing, cancellation, ...) くろまる Support in 10 languages & first class mobile support くろまる Layered & Pluggable - Bring your own monitoring, auth, naming, load balancing ...
  • 6.
    くろまる Core features and protocol are fully specified くろまる Rolled out for public Google APIs and widely used internally しろまる Lots of mobile adoption くろまる Approaching 1.0 (GA) release in all languages しろまる Stable APIs for key features くろまる Benefit of layering on top of HTTP/2 standard しろまる Interoperability with 3rd party proxies, tools, libraries.. しろまる WHATWG Fetch Project Status
  • 7.
  • 8.
  • 9.
    message SubscribeRequest { string topic = 1; } message Event { string details = 1; } service Topics { rpc Subscribe(SubscribeRequest) returns (stream Event); } IDL (Interface definition language) Describe once and generate interfaces for any language. Data Model Structure of the request and response. Binary format for network transmission. Wire Format Protocol Buffers
  • 10.
    くろまる Three complete stacks: C/C++, Java and Go. くろまる Other language implementations wrap C-Runtime libraries. しろまる Hand-written wrappers to maintain language idioms くろまる Why wrap C? しろまる Development costs & Implementation Consistency しろまる Performance しろまる Feature evolution くろまる Easy one line installation via packages e.g npm install grpc Implementation Details
  • 11.
  • 12.
    Google confidential │ Do not distribute Use Cases Client-server communication Access Google Cloud Services Build distributed applications Images by Connie Zhou • In data-centers • In public/private cloud • Clients and servers across: • Mobile • Web • Cloud • Also • Embedded systems, IoT • From GCP • From Android and iOS devices • From everywhere else
  • 13.
    HOW TO GET STARTED
  • 14.
    くろまる Install しろまる apt-get install protobuf-compiler しろまる pip install grpcio くろまる Write the protos くろまる Use protoc to generate service interfaces, messages & stubs くろまる Implement services in server くろまる Client instantiates stub くろまる Test & Deploy Typical development workflow
  • 15.
    くろまる Auth & Security - TLS [Mutual], Plugin auth mechanism (e.g. OAuth) くろまる Proxies - nghttp2, haproxy, Google LB, Nginx (in progress) くろまる Client-side load balancing - etcd, Zookeeper, Eureka, ... くろまる Monitor & Trace - Zipkin, Google, DIY くろまる Mobile - Reconnect, QUIC くろまる Web - REST Adapter, WHATWG Fetch くろまる API Evolution - Protobuf, Versioning Advanced Deployment...
  • 16.
  • 17.
    gRPC Core Http 2.0 SSL Code Generated API Planned in: C/C++, Java, GoApplication Layer Framework Layer Transport Layer Architecture: Native Implementation in Language
  • 18.
    Generic Low Level API in C Python Code-Generated Language Idiomatic API Obj-C, C#, C++, ... Ruby PHPPython gRPC Core in C Http 2.0 SSL Language Bindings Code Generated Ruby PHP Obj-C, C#, C++,... Application Layer Framework Layer Transport Layer Architecture: Derived Stack
  • 19.
    Wire Implementation across languages gRPC Core Http 2.0 SSL Code Generated API Auth Architecture and API Credentials API Auth-Credentials Implementation AuthPluginAPI
  • 20.
    くろまる Generic mechanism for attaching metadata to requests and responses くろまる Built into the gRPC protocol - always available くろまる Plugin API to attach "bearer tokens" to requests for Auth しろまる OAuth2 access tokens しろまる OIDC Id Tokens くろまる Session state for specific Auth mechanisms is encapsulated in an Auth- credentials object Metadata and Auth
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
    Initial Alpha Release Beta Release Stability, Easy installation, 1.0 release Q1 ‘16 Roadmap: Timeline Q2 ‘15 Q3 ‘15, Q4’15 Q1 ‘15 Q2 ‘16 Q3 16 Additional Alpha Releases Load balancing, Naming, Performance Debugging and Tracing, Browser support
  • 26.
    Thank you! Thank you! Twitter: @grpcio Site: grpc.io Group: grpc-io@googlegroups.com

AltStyle によって変換されたページ (->オリジナル) /