mirror of https://github.com/grpc/grpc.io.git
Rework Google-specific language (#167)
* Change wording on gRPC origin Signed-off-by: lucperkins <lucperkins@gmail.com> * Templatize Why gRPC section Signed-off-by: lucperkins <lucperkins@gmail.com> * s/implement/generate
This commit is contained in:
parent
08eec27984
commit
aae9235be6
|
@ -35,16 +35,13 @@ Check out what people are saying below.
|
|||
|
||||
## The story behind gRPC
|
||||
|
||||
Google has been using a single general-purpose RPC infrastructure called Stubby
|
||||
to connect the large number of microservices running within and across our data
|
||||
centers for over a decade. Our internal systems have long embraced the
|
||||
microservice architecture gaining popularity today. Stubby has powered all of
|
||||
Google’s microservices interconnect for over a decade and is the RPC backbone
|
||||
behind every Google service that you use today. In March 2015, we decided to
|
||||
build the next version of Stubby in the open so we can share our learnings with
|
||||
the industry and collaborate with them to build the next version of Stubby both
|
||||
for microservices inside and outside Google but also for last mile of computing
|
||||
(mobile, web and IOT).
|
||||
gRPC was initially created by Google, which has used a single general-purpose
|
||||
RPC infrastructure called **Stubby** to connect the large number of microservices
|
||||
running within and across its data centers for over a decade. In March 2015,
|
||||
Google decided to build the next version of Stubby and make it open source. The
|
||||
result was gRPC, which is now used in a great many organizations outside of
|
||||
Google to power use cases from microservices to the "last mile" of computing
|
||||
(mobile, web, and Internet of Things).
|
||||
|
||||
For more background on why we created gRPC, see the [gRPC Motivation and Design
|
||||
Principles](/blog/principles) on the [gRPC blog](/blog).
|
||||
|
|
|
@ -17,9 +17,7 @@ This guide also does not cover anything on the server side. You can check the [J
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
Our example is a simple route mapping application that lets clients get information about features on their route, create a summary of their route, and exchange route information such as traffic updates with the server and other clients.
|
||||
|
||||
With gRPC we can define our service once in a .proto file and implement clients and servers in any of gRPC's supported languages, which in turn can be run in environments ranging from servers inside Google to your own tablet - all the complexity of communication between different languages and environments is handled for you by gRPC. We also get all the advantages of working with protocol buffers, including efficient serialization, a simple IDL, and easy interface updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -24,18 +24,7 @@ guide](https://developers.google.com/protocol-buffers/docs/reference/cpp-generat
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
Our example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC we can define our service once in a .proto file and implement clients
|
||||
and servers in any of gRPC's supported languages, which in turn can be run in
|
||||
environments ranging from servers inside Google to your own tablet - all the
|
||||
complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. We also get all the advantages of working with protocol
|
||||
buffers, including efficient serialization, a simple IDL, and easy interface
|
||||
updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -21,18 +21,7 @@ language: you can find out more in the
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
Our example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC we can define our service once in a .proto file and implement clients
|
||||
and servers in any of gRPC's supported languages, which in turn can be run in
|
||||
environments ranging from servers inside Google to your own tablet - all the
|
||||
complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. We also get all the advantages of working with protocol
|
||||
buffers, including efficient serialization, a simple IDL, and easy interface
|
||||
updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -22,18 +22,7 @@ guide](https://developers.google.com/protocol-buffers/docs/proto3).
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
Our example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC we can define our service once in a .proto file and implement clients
|
||||
and servers in any of gRPC's supported languages, which in turn can be run in
|
||||
environments ranging from servers inside Google to your own tablet - all the
|
||||
complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. We also get all the advantages of working with protocol
|
||||
buffers, including efficient serialization, a simple IDL, and easy interface
|
||||
updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -23,18 +23,7 @@ guide](https://developers.google.com/protocol-buffers/docs/reference/go-generate
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
Our example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC we can define our service once in a .proto file and implement clients
|
||||
and servers in any of gRPC's supported languages, which in turn can be run in
|
||||
environments ranging from servers inside Google to your own tablet - all the
|
||||
complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. We also get all the advantages of working with protocol
|
||||
buffers, including efficient serialization, a simple IDL, and easy interface
|
||||
updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -25,18 +25,7 @@ guide](https://developers.google.com/protocol-buffers/docs/reference/java-genera
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
Our example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC we can define our service once in a .proto file and implement clients
|
||||
and servers in any of gRPC's supported languages, which in turn can be run in
|
||||
environments ranging from servers inside Google to your own tablet - all the
|
||||
complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. We also get all the advantages of working with protocol
|
||||
buffers, including efficient serialization, a simple IDL, and easy interface
|
||||
updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -22,18 +22,7 @@ buffers language. You can find out more in the
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
Our example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC we can define our service once in a .proto file and implement clients
|
||||
and servers in any of gRPC's supported languages, which in turn can be run in
|
||||
environments ranging from servers inside Google to your own tablet - all the
|
||||
complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. We also get all the advantages of working with protocol
|
||||
buffers, including efficient serialization, a simple IDL, and easy interface
|
||||
updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -22,23 +22,9 @@ guide](https://developers.google.com/protocol-buffers/docs/proto3) and the
|
|||
[Objective-C generated code
|
||||
guide](https://developers.google.com/protocol-buffers/docs/reference/objective-c-generated).
|
||||
|
||||
### Why use gRPC? {#why-grpc}
|
||||
### Why use gRPC?
|
||||
|
||||
With gRPC you can define your service once in a .proto file and implement
|
||||
clients and servers in any of gRPC's supported languages, which in turn can be
|
||||
run in environments ranging from servers inside Google to your own tablet - all
|
||||
the complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. You also get all the advantages of working with
|
||||
protocol buffers, including efficient serialization, a simple IDL, and easy
|
||||
interface updating.
|
||||
|
||||
gRPC and proto3 are specially suited for mobile clients: gRPC is implemented on
|
||||
top of HTTP/2, which results in network bandwidth savings over using HTTP/1.1.
|
||||
Serialization and parsing of the proto binary format is more efficient than the
|
||||
equivalent JSON, resulting in CPU and battery savings. And proto3 uses a runtime
|
||||
that has been optimized over the years at Google to keep code size to a minimum.
|
||||
The latter is important in Objective-C, because the ability of the compiler to
|
||||
strip unused code is limited by the dynamic nature of the language.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup {#setup}
|
||||
|
||||
|
|
|
@ -22,15 +22,9 @@ Also note that currently you can only create clients in PHP for gRPC services -
|
|||
you can find out how to create gRPC servers in our other tutorials, e.g.
|
||||
[Node.js](/docs/tutorials/basic/node/).
|
||||
|
||||
### Why use gRPC? {#why-grpcc}
|
||||
### Why use gRPC?
|
||||
|
||||
With gRPC you can define your service once in a .proto file and implement
|
||||
clients and servers in any of gRPC's supported languages, which in turn can be
|
||||
run in environments ranging from servers inside Google to your own tablet - all
|
||||
the complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. You also get all the advantages of working with
|
||||
protocol buffers, including efficient serialization, a simple IDL, and easy
|
||||
interface updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup {#setup}
|
||||
|
||||
|
|
|
@ -23,18 +23,7 @@ guide](https://developers.google.com/protocol-buffers/docs/reference/python-gene
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
This example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC you can define your service once in a .proto file and implement
|
||||
clients and servers in any of gRPC's supported languages, which in turn can be
|
||||
run in environments ranging from servers inside Google to your own tablet -
|
||||
all the complexity of communication between different languages and environments
|
||||
is handled for you by gRPC. You also get all the advantages of working with
|
||||
protocol buffers, including efficient serialization, a simple IDL, and easy
|
||||
interface updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -22,18 +22,7 @@ guide](https://developers.google.com/protocol-buffers/docs/proto3).
|
|||
|
||||
### Why use gRPC?
|
||||
|
||||
Our example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC we can define our service once in a .proto file and implement clients
|
||||
and servers in any of gRPC's supported languages, which in turn can be run in
|
||||
environments ranging from servers inside Google to your own tablet - all the
|
||||
complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. We also get all the advantages of working with protocol
|
||||
buffers, including efficient serialization, a simple IDL, and easy interface
|
||||
updating.
|
||||
{{< why-grpc >}}
|
||||
|
||||
### Example code and setup
|
||||
|
||||
|
|
|
@ -21,12 +21,12 @@ buffers](https://developers.google.com/protocol-buffers/docs/overview).
|
|||
|
||||
With gRPC you can define your service once in a .proto file and implement
|
||||
clients and servers in any of gRPC's supported languages, which in turn can be
|
||||
run in environments ranging from servers inside Google to your own tablet - all
|
||||
the complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. You also get all the advantages of working with
|
||||
protocol buffers, including efficient serialization, a simple IDL, and easy
|
||||
interface updating. gRPC-Web lets you access gRPC services built in this manner
|
||||
from browsers using an idiomatic API.
|
||||
run in environments ranging from servers inside a large data center to your own
|
||||
tablet - all the complexity of communication between different languages and
|
||||
environments is handled for you by gRPC. You also get all the advantages of
|
||||
working with protocol buffers, including efficient serialization, a simple IDL,
|
||||
and easy interface updating. gRPC-Web lets you access gRPC services built in this
|
||||
manner from browsers using an idiomatic API.
|
||||
|
||||
### Define the Service {#setup}
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
Our example is a simple route mapping application that lets clients get
|
||||
information about features on their route, create a summary of their route, and
|
||||
exchange route information such as traffic updates with the server and other
|
||||
clients.
|
||||
|
||||
With gRPC we can define our service once in a `.proto` file and generate clients
|
||||
and servers in any of gRPC's supported languages, which in turn can be run in
|
||||
environments ranging from servers inside a large data center to your own tablet —
|
||||
all the complexity of communication between different languages and environments is
|
||||
handled for you by gRPC. We also get all the advantages of working with protocol
|
||||
buffers, including efficient serialization, a simple IDL, and easy interface
|
||||
updating.
|
|
@ -0,0 +1 @@
|
|||
{{ readFile "includes/why-grpc.md" | markdownify }}
|
Loading…
Reference in New Issue