Cleanup: make title capitalization consistent with guidelines (#417)

* Fix title case for Quick start

* Fix title case for tutorials

* Use relative path to basics tutorial from qc

* Avoid unnecessary redirects
This commit is contained in:
Patrice Chalin 2020-09-24 17:51:19 -04:00 committed by GitHub
parent f5a68c2771
commit 0ba07a5c61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
73 changed files with 272 additions and 252 deletions

View File

@ -4,6 +4,7 @@
// Workspace dictionary:
"words": [
"backends",
"Bazel",
"boringssl",
"charsets",
"CNCF",
@ -29,9 +30,12 @@
"SDKs",
"subchannel",
"subchannels",
"submodule",
"submodules",
"threadsafe",
"unmarshalling"
"unencrypted",
"unmarshalling",
"Xcode"
],
"flagWords": [],
"ignoreWords": [

View File

@ -1,6 +1,6 @@
# The gRPC website and documentation
This repository houses the assets used to build and deploy the gRPC website, available at https://grpc.io. The site is built using the [Hugo](https://gohugo.io) static site generator. Check out the [Hugo Quick Start](https://gohugo.io/getting-started/quick-start/) for a quick intro.
This repository houses the assets used to build and deploy the gRPC website, available at https://grpc.io. The site is built using the [Hugo](https://gohugo.io) static site generator. Check out the [Hugo quick start](https://gohugo.io/getting-started/quick-start/) for a quick intro.
## Prerequisites

View File

@ -74,32 +74,32 @@ outputs:
menu:
main:
- name: About
url: /about
url: /about/
weight: 1
- name: Docs
url: /docs
url: /docs/
identifier: docs
weight: 2
- name: Blog
url: /blog
url: /blog/
weight: 4
- name: Community
url: /community
url: /community/
weight: 5
- name: Overview
url: /docs
url: /docs/
weight: 1
parent: docs
- name: What is gRPC?
url: /docs/what-is-grpc
url: /docs/what-is-grpc/
weight: 1
parent: docs
- name: Languages
url: /docs/languages
url: /docs/languages/
weight: 2
parent: docs
- name: Guides
url: /docs/guides
url: /docs/guides/
identifier: guides
weight: 4
parent: docs
@ -108,6 +108,6 @@ menu:
weight: 6
parent: docs
- name: FAQ
url: /faq
url: /faq/
weight: 7
parent: docs

View File

@ -44,11 +44,11 @@ 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).
Principles](/blog/principles/) on the [gRPC blog](/blog/).
{{< note >}}
<a name="officially-supported-languages-and-platforms"></a>
Our table of **officially supported languages and platforms** has moved!
See [Supported languages and platforms](/docs/languages#official-support).
See [Supported languages and platforms](/docs/languages/#official-support).
{{< /note >}}

View File

@ -11,9 +11,9 @@ The gRPC team is excited to announce the immediate availability of gRPC Beta. Th
Were also taking a big step forward in improving the installation process. Over the past few weeks weve rolled out gRPC packages to <a href="https://packages.debian.org/jessie-backports/libgrpc0">Debian Stable/Backports</a>. Installation in most cases is now a two line install using the Debian package and available language specific package managers (<a href="https://search.maven.org/#artifactdetails%7Cio.grpc%7Cgrpc-core%7C0.9.0%7Cjar">maven</a>, <a href="https://pypi.python.org/pypi/grpcio">pip</a>, <a href="https://rubygems.org/gems/grpc">gem</a>, <a href="https://packagist.org/packages/grpc/grpc">composer</a>, <a href="https://pecl.php.net/package/gRPC">pecl</a>, <a href="https://www.npmjs.com/package/grpc">npm</a>, <a href="https://www.nuget.org/packages/Grpc/">nuget</a>, [pod](https://cocoapods.org/pods/gRPC)). In addition [gRPC docker images](https://hub.docker.com/r/grpc) are now available on Docker Hub.
Weve updated the [documentation](/docs) on grpc.io to reflect the latest changes and released additional language-specific [reference docs](/docs/reference). See whats changed with the Beta release in the release notes on GitHub for [Java](https://github.com/grpc/grpc-java/releases/tag/v0.9.0), [Go](https://godoc.org/google.golang.org/grpc), and [all other](https://github.com/grpc/grpc/releases/tag/release-0_11_0) languages.
Weve updated the [documentation](/docs/) on grpc.io to reflect the latest changes and released additional language-specific [reference docs](/docs/languages/). See whats changed with the Beta release in the release notes on GitHub for [Java](https://github.com/grpc/grpc-java/releases/tag/v0.9.0), [Go](https://godoc.org/google.golang.org/grpc), and [all other](https://github.com/grpc/grpc/releases/tag/release-0_11_0) languages.
In keeping in line with our [principles](../principles) and goal to enable highly performant and scalable APIs and microservices on top of HTTP/2, in the coming months, the focus of the gRPC project will be to keep improving performance and stability and adding carefully chosen features for production use cases. Documentation will also be clarified and will continue to improve with new examples and guides.
In keeping in line with our [principles](../principles/) and goal to enable highly performant and scalable APIs and microservices on top of HTTP/2, in the coming months, the focus of the gRPC project will be to keep improving performance and stability and adding carefully chosen features for production use cases. Documentation will also be clarified and will continue to improve with new examples and guides.
Weve been very excited to see the community response to gRPC and the various projects starting to use it ([etcd v3 experimental API](https://coreos.com/blog/etcd-2.2), [grpc-gateway](https://github.com/gengo/grpc-gateway) for RESTful APIs and others).

View File

@ -27,7 +27,7 @@ In gRPC, both the client and server make their own independent and local determi
As a client you should always set a deadline for how long you are willing to
wait for a reply from the server. Here are examples using the Greeting service
from the [Quick Start](/docs/quickstart/) pages:
from the [Quick start](/docs/quickstart/) pages:
### C++

View File

@ -15,7 +15,7 @@ Languages moving to 1.0 include C++, Java, Go, Node, Ruby, Python and C# across
We are very excited about the progress we have made so far and would like to thank all our users and contributors. First announced in March 2015 with [Square](https://corner.squareup.com/2015/02/grpc.html), gRPC is already being used in many open source projects like [etcd](https://github.com/coreos/etcd) from CoreOS, [containerd](https://github.com/docker/containerd) from Docker, [cockroachdb](https://github.com/cockroachdb/cockroach) from Cockroach Labs, and by many other companies like [Vendasta](https://vendasta.com), [Netflix](https://github.com/Netflix/ribbon), [YikYak](http://yikyakapp.com) and [Carbon 3d](http://carbon3d.com). Outside of microservices, telecom giants like [Cisco](https://github.com/CiscoDevNet/grpc-getting-started), [Juniper](https://github.com/Juniper/open-nti), [Arista](https://github.com/aristanetworks/goarista), and Ciena, are building support for streaming telemetry and network configuration from their network devices using gRPC, as part of [OpenConfig](http://www.openconfig.net/) effort.
From the beta release, we have made significant strides in the areas of usability, interoperability, and performance measurement on the [road to 1.0](https://www.youtube.com/watch?v=_vfbVJ_u5mE). In most of the languages, the [installation of the gRPC runtime](/blog/installation) as well as setup of a development environment is a single command. Beyond installation, we have set up automated tests for gRPC across languages and RPC types in order to stress test our APIs and ensure interoperability. There is now a [performance dashboard](https://goo.gl/tHPEfD) available in the open to see latency and throughput for unary and streaming ping pong for various languages. Other measurements have shown significant gains from using gRPC/Protobuf instead of HTTP/JSON such as in [CoreOS blogpost](https://blog.gopheracademy.com/advent-2015/etcd-distributed-key-value-store-with-grpc-http2/) and in [Google Cloud PubSub testing](https://cloud.google.com/blog/big-data/2016/03/announcing-grpc-alpha-for-google-cloud-pubsub). In the coming months, we will invest a lot more in performance tuning.
From the beta release, we have made significant strides in the areas of usability, interoperability, and performance measurement on the [road to 1.0](https://www.youtube.com/watch?v=_vfbVJ_u5mE). In most of the languages, the [installation of the gRPC runtime](/blog/installation/) as well as setup of a development environment is a single command. Beyond installation, we have set up automated tests for gRPC across languages and RPC types in order to stress test our APIs and ensure interoperability. There is now a [performance dashboard](https://goo.gl/tHPEfD) available in the open to see latency and throughput for unary and streaming ping pong for various languages. Other measurements have shown significant gains from using gRPC/Protobuf instead of HTTP/JSON such as in [CoreOS blogpost](https://blog.gopheracademy.com/advent-2015/etcd-distributed-key-value-store-with-grpc-http2/) and in [Google Cloud PubSub testing](https://cloud.google.com/blog/big-data/2016/03/announcing-grpc-alpha-for-google-cloud-pubsub). In the coming months, we will invest a lot more in performance tuning.
Even within Google, we have seen Google cloud APIs like [BigTable](https://cloudplatform.googleblog.com/2015/07/A-Go-client-for-Google-Cloud-Bigtable.html), PubSub, [Speech](https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/speech/grpc), launch of a gRPC-based API surface leading to ease of use and performance benefits. Products like [Tensorflow](https://research.googleblog.com/2016/02/running-your-models-in-production-with.html) have effectively used gRPC for inter-process communication as well.
Even within Google, we have seen Google cloud APIs like [BigTable](https://cloudplatform.googleblog.com/2015/07/A-Go-client-for-Google-Cloud-Bigtable.html), PubSub, [Speech](https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/speech/grpc), launch of a gRPC-based API surface leading to ease of use and performance benefits. Products like [Tensorflow](https://research.googleblog.com/2016/02/running-your-models-in-production-with.html) have effectively used gRPC for inter-process communication as well.
Beyond usage, we are keen to see the contributor community grow with gRPC. We are already starting to see contributions around gRPC in meaningful ways in the [grpc-ecosystem](https://github.com/grpc-ecosystem) organization. We are very happy to see projects like [grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway) to enable users to serve REST clients with gRPC based services, [Polyglot](https://github.com/grpc-ecosystem/polyglot) to have a CLI for gRPC, [Prometheus monitoring](https://github.com/grpc-ecosystem/go-grpc-prometheus) of gRPC Services and work with [OpenTracing](https://github.com/grpc-ecosystem/grpc-opentracing). You can suggest and contribute projects to this organization [here](https://docs.google.com/a/google.com/forms/d/119zb79XRovQYafE9XKjz9sstwynCWcMpoJwHgZJvK74/edit). We look forward to working with the community to take the gRPC project to new heights.

View File

@ -7,7 +7,7 @@ author:
link: https://github.com/jadekler
---
In a [previous article](/blog/http2-smarter-at-scale), we explored how HTTP/2 dramatically increases network efficiency and enables real-time communication by providing a framework for long-lived connections. In this article, well look at how gRPC builds on HTTP/2s long-lived connections to create a performant, robust platform for inter-service communication. We will explore the relationship between gRPC and HTTP/2, how gRPC manages HTTP/2 connections, and how gRPC uses HTTP/2 to keep connections alive, healthy, and utilized.
In a [previous article](/blog/http2-smarter-at-scale/), we explored how HTTP/2 dramatically increases network efficiency and enables real-time communication by providing a framework for long-lived connections. In this article, well look at how gRPC builds on HTTP/2s long-lived connections to create a performant, robust platform for inter-service communication. We will explore the relationship between gRPC and HTTP/2, how gRPC manages HTTP/2 connections, and how gRPC uses HTTP/2 to keep connections alive, healthy, and utilized.
<!--more-->

View File

@ -110,7 +110,7 @@ var getTodo = todoService.getTodoById(getTodoRequest, metadata, (err, response)
});
```
Once you declare the data types and a service interface, gRPC-Web abstracts away all the boilerplate, leaving you with a clean and human-friendly API (essentially the same API as the current [Node.js](/docs/tutorials/basic/node/) for gRPC API, just transferred to the client).
Once you declare the data types and a service interface, gRPC-Web abstracts away all the boilerplate, leaving you with a clean and human-friendly API (essentially the same API as the current [Node.js](/docs/languages/node/) for gRPC API, just transferred to the client).
On the backend, the gRPC server can be written in any language that supports gRPC, such as Go, Java, C++, Ruby, Node.js, and many others. The last piece of the puzzle is the service proxy. From the get-go, gRPC-Web will support [Envoy](https://envoyproxy.io) as the default service proxy, which has a built-in [envoy.grpc_web filter](https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/grpc_web_filter#config-http-filters-grpc-web) that you can apply with just a few lines of configuration.

View File

@ -197,7 +197,7 @@ consider posting to the [gRPC mailing list][] or sending us an email at
[grpc-web-team@google.com][].
[1.1.0]: https://github.com/grpc/grpc-web/releases/tag/1.1.0
[gRPC languages]: /docs/languages
[gRPC languages]: /docs/languages/
[gRPC mailing list]: https://groups.google.com/forum/#!forum/grpc-io
[grpc-web-team@google.com]: mailto:grpc-web-team@google.com
[grpc-web]: https://github.com/grpc/grpc-web

View File

@ -26,7 +26,7 @@ gRPC is actually a collection of technologies that have high cohesion, rather th
Previously, Protobuf and gRPC were generating code for us, but we would like to use our own types. Additionally, we are going to be using our own encoding too. Gson allows us to bring our own types in our code, but provides a way of serializing those types into bytes.
Let's continue with the [Key-Value](https://github.com/carl-mastrangelo/kvstore/tree/04-gson-marshaller) store service. We will be modifying the code used my previous [So You Want to Optimize gRPC](/blog/optimizing-grpc-part-2) post.
Let's continue with the [Key-Value](https://github.com/carl-mastrangelo/kvstore/tree/04-gson-marshaller) store service. We will be modifying the code used my previous [So You Want to Optimize gRPC](/blog/optimizing-grpc-part-2/) post.
## What is a Service Anyways?
@ -187,7 +187,7 @@ $ time ./build/install/kvstore/bin/kvstore
INFO: Did 215.883 RPCs/s
```
What happened? In the previous [optimization](/blog/optimizing-grpc-part-2) post, we saw the Protobuf version do nearly _2,500 RPCs/s_. JSON is slow, but not _that_ slow. We can see what the problem is by printing out the JSON data as it goes through the marshaller:
What happened? In the previous [optimization](/blog/optimizing-grpc-part-2/) post, we saw the Protobuf version do nearly _2,500 RPCs/s_. JSON is slow, but not _that_ slow. We can see what the problem is by printing out the JSON data as it goes through the marshaller:
```json
{"key":[4,-100,-48,22,-128,85,115,5,56,34,-48,-1,-119,60,17,-13,-118]}

View File

@ -35,5 +35,5 @@ C# | Windows | Install [gRPC NuGet package](https://www.nuget.org/packages/Grpc/
Java | Linux, Mac, Windows | Use our [Maven and Gradle plugins](https://github.com/grpc/grpc-java/blob/master/README.md) that provide gRPC with [statically linked `boringssl`](https://github.com/grpc/grpc-java/blob/master/SECURITY.md#openssl-statically-linked-netty-tcnative-boringssl-static)
C++ | Linux, Mac, Windows | Currently requires [manual build and install](https://github.com/grpc/grpc/blob/{{< param grpc_release_tag >}}/src/cpp/README.md)
You can find out more about installation in our [Getting Started guide](/docs/quickstart) and GitHub repositories. Do send us your feedback on our [mailing list](https://groups.google.com/forum/#!forum/grpc-io) or file issues on our issue tracker if you run into any problems.
You can find out more about installation in our [quick start pages](/docs/languages/) and GitHub repositories. Do send us your feedback on our [mailing list](https://groups.google.com/forum/#!forum/grpc-io) or file issues on our issue tracker if you run into any problems.

View File

@ -391,4 +391,4 @@ need to understand what your code is doing, and what your code is supposed to do
the very basics of how to approach and think about optimization. Always make sure to measure
before and after your changes, and use these measurements to guide your optimizations.
In [Part 2](/blog/optimizing-grpc-part-2), we will continue optimizing the server part of the code.
In [Part 2](/blog/optimizing-grpc-part-2/), we will continue optimizing the server part of the code.

View File

@ -8,14 +8,14 @@ author:
---
How fast is gRPC? Pretty fast if you understand how modern clients and servers are built. In
[part 1](/blog/optimizing-grpc-part-1), I showed how to get an easy **60%** improvement. In this
[part 1](/blog/optimizing-grpc-part-1/), I showed how to get an easy **60%** improvement. In this
post I show how to get a **10000%** improvement.
<!--more-->
## Setup
As in [part 1](/blog/optimizing-grpc-part-1), we will start with an existing, Java based,
As in [part 1](/blog/optimizing-grpc-part-1/), we will start with an existing, Java based,
key-value service. The service will offer concurrent access for creating, reading, updating,
and deleting keys and values. All the code can be seen
[here](https://github.com/carl-mastrangelo/kvstore/tree/03-nonblocking-server) if you want to try

View File

@ -192,6 +192,6 @@ browser, and marks an exciting time for frontend developers!
not part of the gRPC-Web spec, and is not recommended for production use. [](#a19)
20. <a id="f20"></a> `grpcweb` allows server streaming methods to be called, but
it doesn't return data until the stream has closed. [](#a20)
21. <a id="f21"></a> [gRPC-Web is Generally Available](/blog/grpc-web-ga) [](#a21)
21. <a id="f21"></a> [gRPC-Web is Generally Available](/blog/grpc-web-ga/) [](#a21)
22. <a id="f22"></a> [github.com/grpc/grpc-web/blob/master/doc/roadmap.md](https://github.com/grpc/grpc-web/blob/master/doc/roadmap.md) [](#a22)
23. <a id="f23"></a> [docs.google.com/forms/d/1NjWpyRviohn5jaPntosBHXRXZYkh_Ffi4GxJZFibylM](https://docs.google.com/forms/d/1NjWpyRviohn5jaPntosBHXRXZYkh_Ffi4GxJZFibylM) [](#a23)

View File

@ -6,7 +6,7 @@ gRPC has an active community of developers who are using, enhancing, and buildin
## Contribute on GitHub
gRPC has an active community of developers who are using, enhancing and building valuable integrations with other software projects. We are always looking for active contributors in gRPC and gRPC Ecosystem. Here are a few areas where we would love community contribution in grpc project. Be sure to follow our [community addition guidelines](/contribute).
gRPC has an active community of developers who are using, enhancing and building valuable integrations with other software projects. We are always looking for active contributors in gRPC and gRPC Ecosystem. Here are a few areas where we would love community contribution in grpc project. Be sure to follow our [community addition guidelines](/contribute/).
## [gRPC C-based](https://github.com/grpc/grpc/labels/disposition%2Fhelp%20wanted)
@ -20,7 +20,7 @@ For Android Java and Java.
For the Go implementation.
[More on how to contribute to gRPC Documentation >](/contribute)
[More on how to contribute to gRPC Documentation.](/contribute/)
## Mailing list
@ -28,7 +28,7 @@ Any questions or suggestions? Just want to be in the loop of what is going on wi
## Join the gRPC Ecosystem
We have an organization for all valuable projects around gRPC in the [gRPC Ecosystem](https://github.com/grpc-ecosystem). The goal is to have all projects around gRPC (showing integrations with other projects or building utilities on top of gRPC) to be showcased here. If you have a new project you would like to add to gRPC Ecosystem, please fill up the [gRPC Ecosystem Project Request](https://docs.google.com/a/google.com/forms/d/119zb79XRovQYafE9XKjz9sstwynCWcMpoJwHgZJvK74/edit) form. Please read the [contribution guidelines](https://github.com/grpc/grpc-contrib/blob/master/CONTRIBUTING.md) for gRPC Ecosystem before submitting.
We have an organization for all valuable projects around gRPC in the [gRPC Ecosystem](https://github.com/grpc-ecosystem). The goal is to have all projects around gRPC (showing integrations with other projects or building utilities on top of gRPC) to be showcased here. If you have a new project you would like to add to gRPC Ecosystem, please fill up the [gRPC Ecosystem Project Request](https://docs.google.com/a/google.com/forms/d/119zb79XRovQYafE9XKjz9sstwynCWcMpoJwHgZJvK74/edit) form. Please read the [contribution guidelines](https://github.com/grpc/grpc-contrib/blob/master/CONTRIBUTING.md) for gRPC Ecosystem before submitting.
## Gitter Channel

View File

@ -28,4 +28,4 @@ Click the below button to visit the repo for our site. You can then click the "F
## Being a member of the gRPC organization on github
Being an organization member is not required for the vast majority of the contributions. Membership is required for certain administrative tasks such as accepting a pull request, or closing issues. If you wish to be part of the gRPC organization on github, please [get in touch with us](/community). Please note that in order to be part of the organization, your GitHub account needs to have [two-factor authentication enabled](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/).
Being an organization member is not required for the vast majority of the contributions. Membership is required for certain administrative tasks such as accepting a pull request, or closing issues. If you wish to be part of the gRPC organization on github, please [get in touch with us](/community/). Please note that in order to be part of the organization, your GitHub account needs to have [two-factor authentication enabled](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/).

View File

@ -3,21 +3,21 @@ title: Documentation
---
Learn about key gRPC concepts, try a quick start, find tutorials and reference
material for all [supported languages](languages).
material for all [supported languages](languages/).
- **New to gRPC?** Start with the following pages:
- [Introduction to gRPC](what-is-grpc/introduction)
- [Core concepts, architecture and lifecycle](what-is-grpc/core-concepts)
- [FAQ](/faq)
- [Introduction to gRPC](what-is-grpc/introduction/)
- [Core concepts, architecture and lifecycle](what-is-grpc/core-concepts/)
- [FAQ](/faq/)
- **Eager to see gRPC in action?**
[Select a language](languages) and then choose its **Quick Start**.
[Select a language](languages/) and then choose its **Quick start**.
- Interested in **gRPC feature details?**
Try one of the following:
- [Select a language](languages) and then choose **Tutorial** or **API reference**
- [Guides](guides)
- [Select a language](languages/) and then choose **Tutorial** or **API reference**
- [Guides](guides/)

View File

@ -7,6 +7,6 @@ nav_children: pages
The documentation covers the following techniques:
- [Authentication](auth)
- [Benchmarking](benchmarking)
- [Error handling](error)
- [Authentication](auth/)
- [Benchmarking](benchmarking/)
- [Error handling](error/)

View File

@ -1,5 +1,5 @@
---
title: ALTS Authentication
title: ALTS authentication
description: >
An overview of gRPC authentication using Application Layer Transport Security
(ALTS).

View File

@ -28,7 +28,7 @@ The following authentication mechanisms are built-in to gRPC:
[ALTS](https://cloud.google.com/security/encryption-in-transit/application-layer-transport-security)
as a transport security mechanism, if the application is running on
[Google Cloud Platform (GCP)](https://cloud.google.com/). See
[ALTS Authentication Guide](ALTS) for details.
[ALTS authentication](alts/) for details.
- **Token-based authentication with Google**: gRPC provides a generic
mechanism (described below) to attach metadata based credentials to requests
and responses. Additional support for acquiring access tokens

View File

@ -1,5 +1,5 @@
---
title: Error Handling
title: Error handling
description: How gRPC deals with errors, and gRPC error codes.
---

View File

@ -13,19 +13,19 @@ Each gRPC language / platform has links to the following pages and more:
Select a language to get started:
- [Android Java](android)
- [C# / .NET](csharp)
- [C++](cpp)
- [Dart](dart)
- [Go](go)
- [Java](java)
- [Kotlin/JVM](kotlin)
- [Node.js](node)
- [Objective-C](objective-c)
- [PHP](php)
- [Python](python)
- [Ruby](ruby)
- [Web](web)
- [Android Java](android/)
- [C# / .NET](csharp/)
- [C++](cpp/)
- [Dart](dart/)
- [Go](go/)
- [Java](java/)
- [Kotlin/JVM](kotlin/)
- [Node.js](node/)
- [Objective-C](objective-c/)
- [PHP](php/)
- [Python](python/)
- [Ruby](ruby/)
- [Web](web/)
### Official support

View File

@ -5,6 +5,6 @@ api_path: grpc-java/javadoc
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [API reference](api)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [API reference](api/)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Android Java.
weight: 50
---
@ -12,8 +12,8 @@ By walking through this example you'll learn how to:
- Generate client code using the protocol buffer compiler.
- Use the Java gRPC API to write a simple mobile client for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar with [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview).
This guide also does not cover anything on the server side. You can check the [Java guide](/docs/tutorials/basic/java/) for more information.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar with [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview).
This guide also does not cover anything on the server side. You can check the [Java pages](/docs/languages/java/) for more information.
### Why use gRPC?
@ -39,7 +39,7 @@ interface code - if you don't already, follow the setup instructions in the
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to define the gRPC *service* and the method *request* and *response* types using [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). You can see the complete .proto file in [routeguide/app/src/main/proto/route_guide.proto](https://github.com/grpc/grpc-java/blob/{{< param grpc_java_release_tag >}}/examples/android/routeguide/app/src/main/proto/route_guide.proto).
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to define the gRPC *service* and the method *request* and *response* types using [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). You can see the complete .proto file in [routeguide/app/src/main/proto/route_guide.proto](https://github.com/grpc/grpc-java/blob/{{< param grpc_java_release_tag >}}/examples/android/routeguide/app/src/main/proto/route_guide.proto).
As we're generating Java code in this example, we've specified a `java_package` file option in our .proto:
@ -204,7 +204,7 @@ As you can see, it's very similar to the simple RPC we just looked at, except in
##### Client-side streaming RPC
Now for something a little more complicated: the client-side streaming method `RecordRoute`, where we send a stream of `Point`s to the server and get back a single `RouteSummary`. For this method we need to use the asynchronous stub. If you've already read [Creating the server](/docs/tutorials/basic/java/#server) some of this may look very familiar - asynchronous streaming RPCs are implemented in a similar way on both sides.
Now for something a little more complicated: the client-side streaming method `RecordRoute`, where we send a stream of `Point`s to the server and get back a single `RouteSummary`. For this method we need to use the asynchronous stub. If you've already read [Creating the server](/docs/languages/java/basics/#server) some of this may look very familiar - asynchronous streaming RPCs are implemented in a similar way on both sides.
```java
private String recordRoute(List<Point> points, int numPoints, RouteGuideStub asyncStub)

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in Android Java with a simple working example.
weight: 10
---
@ -95,7 +95,7 @@ Congratulations! You've just run a client-server application with gRPC.
In this section you'll update the application by adding an extra server method.
The gRPC service is defined using [protocol buffers][pb]. To learn more about
how to define a service in a `.proto` file see [Basics Tutorial][]. For now, all
how to define a service in a `.proto` file see [Basics tutorial][]. For now, all
you need to know is that both the server and the client stub have a `SayHello()`
RPC method that takes a `HelloRequest` parameter from the client and returns a
`HelloReply` from the server, and that the method is defined like this:
@ -159,7 +159,7 @@ hand-written parts of the example app.
#### Update the server
Follow the instructions given in [Update the
server](/docs/quickstart/java/#update-the-server) of the Java quick start page.
server](/docs/languages/java/quickstart/#update-the-server) of the Java quick start page.
#### Update the client
@ -251,12 +251,12 @@ In the app, use the following values:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial][].
- Explore the [API reference](../api).
[Basics Tutorial]: /docs/languages/android/basics
[Basics tutorial]: ../basics/
[download]: https://github.com/grpc/grpc-java/archive/{{< param grpc_java_release_tag >}}.zip
[grpc-java]: https://github.com/grpc/grpc-java
[JDK]: https://jdk.java.net

View File

@ -4,7 +4,7 @@ title: C++
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Asynchronous-API tutorial](async)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [Asynchronous-API tutorial](async/)
- [API reference](api)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in C++.
weight: 50
---
@ -12,7 +12,7 @@ By walking through this example you'll learn how to:
- Generate server and client code using the protocol buffer compiler.
- Use the C++ gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar
with [protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). Note
that the example in this tutorial uses the proto3 version of the protocol
@ -45,12 +45,12 @@ $ cd examples/cpp/route_guide
You also should have the relevant tools installed to generate the server and
client interface code - if you don't already, follow the setup instructions in
[the C++ quick start guide](/docs/quickstart/cpp).
[Quick start](/docs/languages/cpp/quickstart/).
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol buffers](https://developers.google.com/protocol-buffers/docs/overview).
You can see the complete .proto file in

View File

@ -1,7 +1,8 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in C++ with a simple working example.
weight: 10
spelling: cSpell:ignore autoconf automake cmake cout DCMAKE endl libtool mkdir popd pushd
cmake-version: 3.17.0
---
@ -172,8 +173,8 @@ Congratulations! You've just run a client-server application with gRPC.
Now let's look at how to update the application with an extra method on the
server for the client to call. Our gRPC service is defined using protocol
buffers; you can find out lots more about how to define a service in a `.proto`
file in [Introduction to gRPC](/docs/what-is-grpc/introduction) and [gRPC Basics:
C++](/docs/tutorials/basic/cpp). For now all you need to know is that both the
file in [Introduction to gRPC](/docs/what-is-grpc/introduction/) and [Basics
tutorial][]. For now all you need to know is that both the
server and the client stub have a `SayHello()` RPC method that takes a
`HelloRequest` parameter from the client and returns a `HelloResponse` from the
server, and that this method is defined like this:
@ -351,9 +352,9 @@ from the example **build** directory `examples/cpp/helloworld/cmake/build`:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial](../basics/).
- Explore the [API reference](../api).
[examples/protos/helloworld.proto]: https://github.com/grpc/grpc/blob/{{< param grpc_release_tag >}}/examples/protos/helloworld.proto

View File

@ -6,12 +6,12 @@ api_path: grpc/LANG/api/Grpc.Core
There are two official implementations of gRPC for C#. The original [gRPC
core-library][core-library] implementation is covered here:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [API reference](api)
- [Daily builds](daily-builds)
For details concerning the newer gRPC for .NET implementation, see [gRPC for
.NET](dotnet).
.NET](dotnet/).
[core-library]: https://github.com/grpc/grpc/tree/master/src/csharp

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in C#.
weight: 50
---
@ -12,7 +12,7 @@ By walking through this example you'll learn how to:
- Generate server and client code using the protocol buffer compiler.
- Use the C# gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar
with [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). Note that the
example in this tutorial uses the proto3 version of the protocol buffers
language: you can find out more in the
@ -43,7 +43,7 @@ instructions](https://github.com/grpc/grpc/tree/{{< param grpc_release_tag >}}/s
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol buffers](https://developers.google.com/protocol-buffers/docs/overview).
You can see the complete .proto file in
@ -465,7 +465,7 @@ Using `dotnet` command line tool
: Run `dotnet build RouteGuide.sln` from the `examples/csharp/RouteGuide`
directory. For additional instructions on building the gRPC example with the
`dotnet` command line tool, see [Quick Start](../../../quickstart/csharp).
`dotnet` command line tool, see [Quick start](../quickstart/).
Run the server:

View File

@ -1,12 +1,12 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in C# with a simple working example.
weight: 10
---
{{< note >}}
This page uses the [gRPC C# core-library][core-library] implementation. For
documentation covering gRPC for .NET, see [gRPC for .NET](../dotnet).
documentation covering gRPC for .NET, see [gRPC for .NET](../dotnet/).
[core-library]: https://github.com/grpc/grpc/tree/master/src/csharp
{{< /note >}}
@ -85,7 +85,7 @@ Congratulations! You've just run a client-server application with gRPC.
Now let's look at how to update the application with an extra method on the
server for the client to call. Our gRPC service is defined using protocol
buffers; you can find out lots more about how to define a service in a `.proto`
file in [gRPC Basics: C#](/docs/tutorials/basic/csharp/). For now all you need to know is that both the
file in [Basics tutorial](../basics/). For now all you need to know is that both the
server and the client "stub" have a `SayHello` RPC method that takes a
`HelloRequest` parameter from the client and returns a `HelloResponse` from the
server, and that this method is defined like this:
@ -239,7 +239,7 @@ Just like we did before, from the `examples/csharp/Helloworld` directory:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial](../basics/)
- Explore the [API reference](../api).

View File

@ -5,6 +5,6 @@ api_path: https://pub.dev/documentation/grpc
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [API reference](api)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Dart.
weight: 50
spelling: cSpell:ignore pbenum pbgrpc pbjson
@ -14,7 +14,7 @@ By walking through this example you'll learn how to:
- Generate server and client code using the protocol buffer compiler.
- Use the Dart gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar
with [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). Note that the
example in this tutorial uses the proto3 version of the protocol buffers
language: you can find out more in the
@ -47,7 +47,7 @@ interface code -- if you haven't, see [Quick start][] for setup instructions.
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). You can see the
complete .proto file in
@ -536,4 +536,4 @@ in our issue tracker.
[grpc-dart/example/route_guide/lib/src/client.dart]: https://github.com/grpc/grpc-dart/tree/master/example/route_guide/lib/src/client.dart
[new issue]: https://github.com/grpc/grpc-dart/issues/new
[Quick start]: ../quickstart
[Quick start]: ../quickstart/

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in Dart with a simple working example.
weight: 10
spelling: cSpell:ignore Iprotos
@ -82,7 +82,7 @@ Congratulations! You've just run a client-server application with gRPC.
In this section you'll update the app to make use of an extra server method. The
gRPC service is defined using [protocol buffers][pb]. To learn more about how to
define a service in a `.proto` file, see [Basics Tutorial][]. For now, all you
define a service in a `.proto` file, see [Basics tutorial][]. For now, all you
need to know is that both the server and the client stub have a `SayHello()` RPC
method that takes a `HelloRequest` parameter from the client and returns a
`HelloReply` from the server, and that the method is defined like this:
@ -224,13 +224,13 @@ issue][issue] over the [grpc-dart][] repo.
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial][].
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial][].
- Explore the [API reference](../api).
[Dart]: https://dart.dev
[Basics Tutorial]: ../basics
[Basics tutorial]: ../basics/
[download]: https://github.com/grpc/grpc-dart/archive/master.zip
[Flutter]: https://flutter.dev
[github.com/google/protobuf/releases]: https://github.com/google/protobuf/releases
@ -240,4 +240,4 @@ issue][issue] over the [grpc-dart][] repo.
[issue]: https://github.com/grpc/grpc-dart/issues/new
[pb]: https://developers.google.com/protocol-buffers
[proto3]: https://developers.google.com/protocol-buffers/docs/proto3
[pbc-install]: /docs/protoc-installation
[pbc-install]: /docs/protoc-installation/

View File

@ -5,7 +5,7 @@ api_path: https://pkg.go.dev/google.golang.org/grpc
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Generated-code reference](generated-code)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [Generated-code reference](generated-code/)
- [API reference](api)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Go.
weight: 50
spelling: cSpell:ignore Fatalf GOPATH Println Sprintf struct waitc
@ -14,7 +14,7 @@ By walking through this example you'll learn how to:
- Generate server and client code using the protocol buffer compiler.
- Use the Go gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar with
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar with
[protocol buffers](https://developers.google.com/protocol-buffers/docs/overview).
Note that the example in this tutorial uses the proto3 version of the protocol
buffers language: you can find out more in the [proto3 language
@ -48,7 +48,7 @@ interface code -- if you haven't, see [Quick start][] for setup instructions.
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol buffers](https://developers.google.com/protocol-buffers/docs/overview).
You can see the complete .proto file in
@ -576,4 +576,4 @@ From a different terminal, run the client:
$ go run client/client.go
```
[Quick start]: ../quickstart
[Quick start]: ../quickstart/

View File

@ -1,13 +1,13 @@
---
title: Go Generated-code Reference
short: Generated Code
title: Go Generated-code reference
short: Generated code
weight: 80
---
This page describes the code generated with the [grpc plugin](https://godoc.org/github.com/golang/protobuf/protoc-gen-go/grpc) to `protoc-gen-go`
when compiling `.proto` files with `protoc`.
You can find out how to define a gRPC service in a `.proto` file in [Service Definitions](/docs/guides/concepts/#service-definition).
You can find out how to define a gRPC service in a `.proto` file in [Service definition](/docs/what-is-grpc/core-concepts/#service-definition).
<p class="note"><strong>Thread-safety</strong>: note that client-side RPC invocations and server-side RPC handlers <i>are thread-safe</i> and are meant
to be run on concurrent goroutines. But also note that for <i>individual streams</i>, incoming and outgoing data is bi-directional but serial;
@ -15,6 +15,7 @@ so e.g. <i>individual streams</i> do not support <i>concurrent reads</i> or <i>c
</p>
## Methods on generated server interfaces
On the server side, each `service Bar` in the `.proto` file results in the function:
`func RegisterBarServer(s *grpc.Server, srv BarServer)`
@ -23,6 +24,7 @@ The application can define a concrete implementation of the `BarServer` interfac
(before starting the server instance) by using this function.
### Unary methods
These methods have the following signature on the generated service interface:
`Foo(context.Context, *MsgA) (*MsgB, error)`
@ -30,6 +32,7 @@ These methods have the following signature on the generated service interface:
In this context, `MsgA` is the protobuf message sent from the client, and `MsgB` is the protobuf message sent back from the server.
### Server-streaming methods
These methods have the following signature on the generated service interface:
`Foo(*MsgA, <ServiceName>_FooServer) error`
@ -50,6 +53,7 @@ The server-side handler can send a stream of protobuf messages to the client thr
stream is caused by the `return` of the handler method.
### Client-streaming methods
These methods have the following signature on the generated service interface:
`Foo(<ServiceName>_FooServer) error`
@ -72,6 +76,7 @@ The single response message from the server is sent by calling the `SendAndClose
Note that `SendAndClose` must be called once and only once.
### Bidi-streaming methods
These methods have the following signature on the generated service interface:
`Foo(<ServiceName>_FooServer) error`
@ -93,10 +98,12 @@ The response server-to-client message stream is sent by repeatedly calling the `
End-of-stream for the server-to-client stream is indicated by the `return` of the bidi method handler.
## Methods on generated client interfaces
For client side usage, each `service Bar` in the `.proto` file also results in the function: `func BarClient(cc *grpc.ClientConn) BarClient`, which
returns a concrete implementation of the `BarClient` interface (this concrete implementation also lives in the generated `.pb.go` file).
### Unary Methods
These methods have the following signature on the generated client stub:
`(ctx context.Context, in *MsgA, opts ...grpc.CallOption) (*MsgB, error)`
@ -104,6 +111,7 @@ These methods have the following signature on the generated client stub:
In this context, `MsgA` is the single request from client to server, and `MsgB` contains the response sent back from the server.
### Server-Streaming methods
These methods have the following signature on the generated client stub:
`Foo(ctx context.Context, in *MsgA, opts ...grpc.CallOption) (<ServiceName>_FooClient, error)`
@ -124,6 +132,7 @@ The client can then repeatedly call the `Recv` method on the returned `<ServiceN
This `Recv` method returns `(nil, io.EOF)` once the server-to-client stream has been completely read through.
### Client-Streaming methods
These methods have the following signature on the generated client stub:
`Foo(ctx context.Context, opts ...grpc.CallOption) (<ServiceName>_FooClient, error)`
@ -146,6 +155,7 @@ The `CloseAndRecv` method on this stream must be called once and only once, in o
and receive the single response message from the server.
### Bidi-Streaming methods
These methods have the following signature on the generated client stub:
`Foo(ctx context.Context, opts ...grpc.CallOption) (<ServiceName>_FooClient, error)`
@ -171,6 +181,7 @@ End-of-stream for the server-to-client stream is indicated by a return value of
End-of-stream for the client-to-server stream can be indicated from the client by calling the `CloseSend` method on the stream.
## Packages and Namespaces
When the `protoc` compiler is invoked with `--go_out=plugins=grpc:`, the `proto package` to Go package translation
works the same as when the `protoc-gen-go` plugin is used without the `grpc` plugin.

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in Go with a simple working example.
weight: 10
---
@ -72,8 +72,8 @@ Congratulations! You've just run a client-server application with gRPC.
In this section you'll update the application with an extra server method. The
gRPC service is defined using [protocol buffers][pb]. To learn more about how to
define a service in a `.proto` file see [gRPC Basics:
Go](/docs/tutorials/basic/go). For now, all you need to know is that both the
define a service in a `.proto` file see [Basics tutorial][].
For now, all you need to know is that both the
server and the client stub have a `SayHello()` RPC method that takes a
`HelloRequest` parameter from the client and returns a `HelloReply` from the
server, and that the method is defined like this:
@ -210,16 +210,17 @@ from the `examples/helloworld` directory:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial][].
- Explore the [API reference](../api).
[Basics tutorial]: ../basics/
[download]: https://github.com/grpc/grpc-go/archive/{{< param grpc_go_release_tag >}}.zip
[Getting Started]: https://golang.org/doc/install
[Go]: https://golang.org
[grpc-go]: https://github.com/grpc/grpc-go
[pb]: https://developers.google.com/protocol-buffers
[proto3]: https://developers.google.com/protocol-buffers/docs/proto3
[pbc-install]: /docs/protoc-installation
[pbc-install]: /docs/protoc-installation/
[releases of Go]: https://golang.org/doc/devel/release.html

View File

@ -5,7 +5,7 @@ api_path: grpc-java/javadoc
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Generated-code reference](generated-code)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [Generated-code reference](generated-code/)
- [API reference](api)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Java.
weight: 50
---
@ -13,7 +13,7 @@ By walking through this example you'll learn how to:
- Generate server and client code using the protocol buffer compiler.
- Use the Java gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar
with [protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). Note
that the example in this tutorial uses the
@ -46,7 +46,7 @@ $ cd grpc-java/examples
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). You can

View File

@ -1,7 +1,8 @@
---
title: Java Generated-code Reference
short: Generated Code
title: Java generated-code reference
short: Generated code
weight: 80
spelling: cSpell:ignore buildscript classpath grpcexample motd srcs xolstice
---
## Packages
@ -87,7 +88,7 @@ public StreamObserver<RequestType> bidirectionalStreamingExample(
The signatures for client and bidirectional-streaming RPCs are the same. Since
the client can send multiple messages to the service, the service implementation
is reponsible for returning a `StreamObserver<RequestType>` instance. This
is responsible for returning a `StreamObserver<RequestType>` instance. This
`StreamObserver` is invoked whenever additional messages are received from the
client.
@ -309,7 +310,7 @@ java_grpc_library(
)
```
Android developers please see [this](/docs/tutorials/basic/android/#generating-client-code) for reference.
Android developers, see [Generating client code](/docs/languages/android/basics/#generating-client-code) for reference.
If you wish to invoke the protobuf plugin for gRPC Java directly,
the command-line syntax is as follows:

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in Java with a simple working example.
weight: 10
---
@ -61,7 +61,7 @@ Congratulations! You've just run a client-server application with gRPC.
In this section you'll update the application by adding an extra server method.
The gRPC service is defined using [protocol buffers][pb]. To learn more about
how to define a service in a `.proto` file see [Basics Tutorial][]. For now, all
how to define a service in a `.proto` file see [Basics tutorial][]. For now, all
you need to know is that both the server and the client stub have a `SayHello()`
RPC method that takes a `HelloRequest` parameter from the client and returns a
`HelloReply` from the server, and that the method is defined like this:
@ -201,12 +201,12 @@ from the `examples` directory:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial][].
- Explore the [API reference](../api).
[Basics Tutorial]: /docs/languages/java/basics
[Basics tutorial]: ../basics/
[download]: https://github.com/grpc/grpc-java/archive/{{< param grpc_java_release_tag >}}.zip
[grpc-java]: https://github.com/grpc/grpc-java
[JDK]: https://jdk.java.net

View File

@ -5,6 +5,6 @@ api_path: https://javadocs.dev/io.grpc/grpc-kotlin-stub/latest
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [API reference](api)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Kotlin/JVM.
weight: 50
---
@ -13,7 +13,7 @@ By walking through this example you'll learn how to:
- Generate server and client code using the protocol buffer compiler.
- Use the Kotlin gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar
with [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). Note that the
example in this tutorial uses the proto3 version of the protocol buffers
language: you can find out more in the
@ -54,7 +54,7 @@ $ cd grpc-kotlin/examples/src/main/kotlin/io/grpc/examples/routeguide
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). You can

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in Kotlin with a simple working example.
weight: 10
---
@ -52,7 +52,7 @@ Congratulations! You've just run a client-server application with gRPC.
Now let's look at how to update the application with an extra method on the
server for the client to call. Our gRPC service is defined using [Protocol
Buffers][pb]; you can find out lots more about how to define a service in a
`.proto` file in [gRPC Basics: Kotlin](/docs/tutorials/basic/kotlin). For now
`.proto` file in [Basics tutorial](../basics/). For now
all you need to know is that both the server and the client "stub" have a
`SayHello()` RPC method that takes a `HelloRequest` parameter from the client
and returns a `HelloReply` from the server, and that this method is defined like
@ -191,9 +191,9 @@ from the `examples` directory:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial](../basics/).
- Explore the [API reference](../api).
[Kotlin]: https://kotlinlang.org

View File

@ -4,6 +4,6 @@ title: Node
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [API reference](api)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Node.
weight: 50
spelling: cSpell:ignore Protobuf oneofs COORD
@ -13,7 +13,7 @@ By walking through this example you'll learn how to:
- Define a service in a .proto file.
- Use the Node.js gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar
with [protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). Note
that the example in this tutorial uses the
@ -57,12 +57,12 @@ $ cd examples/node
You also should have the relevant tools installed to generate the server and
client interface code - if you don't already, follow the setup instructions in
[the Node.js quick start guide](/docs/quickstart/node/).
[Quick start](../quickstart/).
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). You can

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in Node with a simple working example.
weight: 10
---
@ -48,7 +48,7 @@ Congratulations! You've just run a client-server application with gRPC.
Now let's look at how to update the application with an extra method on the
server for the client to call. Our gRPC service is defined using protocol
buffers; you can find out lots more about how to define a service in a `.proto`
file in [gRPC Basics: Node](/docs/tutorials/basic/node/). For now all you need
file in [Basics tutorial](../basics/). For now all you need
to know is that both the server and the client "stub" have a `SayHello` RPC
method that takes a `HelloRequest` parameter from the client and returns a
`HelloReply` from the server, and that this method is defined like this:
@ -161,9 +161,9 @@ Just like we did before, from the `examples/node/dynamic_codegen` directory:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial](../basics/).
- Explore the [API reference](../api).
- We have more than one grpc implementation for Node. For the pros and cons of
each package, see this [package feature comparison][].

View File

@ -5,9 +5,9 @@ api_path: grpc/objc
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [OAuth2 tutorial](oauth2)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [OAuth2 tutorial](oauth2/)
- [API reference](api)
Related resources:

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Objective-C.
weight: 50
---

View File

@ -15,9 +15,8 @@ By walking through it you'll also learn how to use the Objective-C gRPC API to:
headers and trailers.
It assumes you know the basics on how to make gRPC API calls using the
Objective-C client library, as shown in [gRPC Basics:
Objective-C](/docs/tutorials/basic/objective-c/) and the
[Introduction to gRPC](/docs/what-is-grpc/introduction), and are familiar with OAuth2 concepts like _access
Objective-C client library, as shown in [Basics tutorial](../basics/) and the
[Introduction to gRPC](/docs/what-is-grpc/introduction/), and are familiar with OAuth2 concepts like _access
token_.
### Example code and setup {#setup}
@ -58,23 +57,23 @@ here](https://developers.google.com/identity/sign-in/ios/).
{{< /note >}}
As with the other Objective-C examples, you also should have
[Cocoapods](https://cocoapods.org/#install) installed, as well as the relevant
[CocoaPods](https://cocoapods.org/#install) installed, as well as the relevant
tools to generate the client library code. You can obtain the latter by
following [these setup instructions](https://github.com/grpc/homebrew-grpc).
### Try it out! {#try}
To try the sample app, first have Cocoapods generate and install the client library for our .proto
To try the sample app, first have CocoaPods generate and install the client library for our .proto
files:
```sh
$ pod install
```
(This might have to compile OpenSSL, which takes around 15 minutes if Cocoapods
(This might have to compile OpenSSL, which takes around 15 minutes if CocoaPods
doesn't have it yet on your computer's cache).
Finally, open the XCode workspace created by Cocoapods, and run the app.
Finally, open the XCode workspace created by CocoaPods, and run the app.
The first view, `SelectUserViewController.h/m`, asks you to sign in with your
Google account, and to give the "gRPC-AuthSample" app the following permissions:

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC on the iOS platform in Objective-C with a simple working example.
weight: 10
---
@ -311,7 +311,7 @@ Cannot find `protoc` when building HelloWorld
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial](../basics/).
- Explore the [API reference](../api).

View File

@ -5,7 +5,7 @@ api_path: grpc/LANG/namespace_grpc
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [API reference](api)
- [Daily builds](daily-builds)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in PHP.
weight: 50
---
@ -18,9 +18,8 @@ buffers](https://developers.google.com/protocol-buffers/docs/overview). Note
that the example in this tutorial uses the proto2 version of the protocol
buffers language.
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/).
Also note that currently, you can only create clients in PHP for gRPC services.
Use [another language](/docs/languages/) to create a gRPC server.
### Why use gRPC?
@ -58,7 +57,7 @@ clients.
You also should have the relevant tools installed to generate the client
interface code (and a server in another language, for testing). You can obtain
the latter by following [these setup
instructions](/docs/tutorials/basic/node/).
instructions](/docs/languages/node/basics/), for example.
### Try it out! {#try}

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in PHP with a simple working example.
weight: 10
---
@ -259,9 +259,8 @@ Download the example code from our GitHub repository (the following command
clones the entire repository, but you just need the examples for this quick start
and other tutorials):
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/).
Note that currently, you can only create clients in PHP for gRPC services.
Use [another language](/docs/languages/) to create a gRPC server.
```sh
# Clone the repository to get the example code:
@ -300,7 +299,7 @@ Congratulations! You've just run a client-server application with gRPC.
Now let's look at how to update the application with an extra method on the
server for the client to call. Our gRPC service is defined using protocol
buffers; you can find out lots more about how to define a service in a `.proto`
file in [gRPC Basics: PHP](/docs/tutorials/basic/php/). For now all you need to know is that both the
file in [Basics tutorial](../basics/). For now all you need to know is that both the
server and the client "stub" have a `SayHello` RPC method that takes a
`HelloRequest` parameter from the client and returns a `HelloResponse` from
the server, and that this method is defined like this:
@ -435,7 +434,7 @@ Just like we did before, from the `examples/node/dynamic_codegen` directory:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial](../basics/).
- Explore the [API reference](../api).

View File

@ -4,8 +4,8 @@ title: Python
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Generated-code reference](generated-code)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [Generated-code reference](generated-code/)
- [API reference](api)
- [Daily builds](daily-builds)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Python.
weight: 50
---
@ -13,7 +13,7 @@ By walking through this example you'll learn how to:
- Generate server and client code using the protocol buffer compiler.
- Use the Python gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar
with [protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). You can
find out more in the [proto3 language
@ -44,11 +44,11 @@ $ cd grpc/examples/python/route_guide
You also should have the relevant tools installed to generate the server and
client interface code - if you don't already, follow the setup instructions in
[the Python quick start guide](/docs/quickstart/python).
[Quick start](../quickstart/).
### Defining the service
Your first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Your first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). You can

View File

@ -1,6 +1,6 @@
---
title: Python Generated-code Reference
short: Generated Code
title: Python Generated-code reference
short: Generated code
weight: 80
spelling: cSpell:ignore docstrings
---

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in Python with a simple working example.
weight: 10
---
@ -104,7 +104,7 @@ Congratulations! You've just run a client-server application with gRPC.
Now let's look at how to update the application with an extra method on the
server for the client to call. Our gRPC service is defined using protocol
buffers; you can find out lots more about how to define a service in a `.proto`
file in [Introduction to gRPC](/docs/what-is-grpc/introduction) and [gRPC Basics: Python](/docs/tutorials/basic/python/). For now all you need
file in [Introduction to gRPC](/docs/what-is-grpc/introduction/) and [Basics tutorial](../basics/). For now all you need
to know is that both the server and the client "stub" have a `SayHello` RPC
method that takes a `HelloRequest` parameter from the client and returns a
`HelloReply` from the server, and that this method is defined like this:
@ -222,7 +222,7 @@ Just like we did before, from the `examples/python/helloworld` directory:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial](../basics/).
- Explore the [API reference](../api).

View File

@ -5,7 +5,7 @@ api_path: https://rubydoc.info/gems/grpc
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [API reference](api)
- [Daily builds](daily-builds)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC in Ruby.
weight: 50
---
@ -12,7 +12,7 @@ By walking through this example you'll learn how to:
- Generate server and client code using the protocol buffer compiler.
- Use the Ruby gRPC API to write a simple client and server for your service.
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction) and are familiar
It assumes that you have read the [Introduction to gRPC](/docs/what-is-grpc/introduction/) and are familiar
with [protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). Note
that the example in this tutorial uses the proto3 version of the protocol
@ -44,11 +44,11 @@ $ cd examples/ruby/route_guide
You also should have the relevant tools installed to generate the server and
client interface code - if you don't already, follow the setup instructions in
[the Ruby quick start guide](/docs/quickstart/ruby/).
[Quick start](../quickstart/).
### Defining the service
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction)) is to
Our first step (as you'll know from the [Introduction to gRPC](/docs/what-is-grpc/introduction/)) is to
define the gRPC *service* and the method *request* and *response* types using
[protocol
buffers](https://developers.google.com/protocol-buffers/docs/overview). You can

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC in Ruby with a simple working example.
weight: 10
---
@ -69,7 +69,7 @@ Congratulations! You've just run a client-server application with gRPC.
Now let's look at how to update the application with an extra method on the
server for the client to call. Our gRPC service is defined using protocol
buffers; you can find out lots more about how to define a service in a `.proto`
file in [gRPC Basics: Ruby](/docs/tutorials/basic/ruby/). For now all you need
file in [Basics tutorial](../basics/). For now all you need
to know is that both the server and the client "stub" have a `SayHello` RPC
method that takes a `HelloRequest` parameter from the client and returns a
`HelloResponse` from the server, and that this method is defined like this:
@ -181,7 +181,7 @@ Just like we did before, from the `examples/ruby` directory:
### What's next
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction)
and [Core concepts](/docs/what-is-grpc/core-concepts).
- Work through the [Basics Tutorial](../basics).
- Learn how gRPC works in [Introduction to gRPC](/docs/what-is-grpc/introduction/)
and [Core concepts](/docs/what-is-grpc/core-concepts/).
- Work through the [Basics tutorial](../basics/).
- Explore the [API reference](../api).

View File

@ -4,5 +4,5 @@ title: Web
These language-specific pages are available:
- [Quick start](quickstart)
- [Basics tutorial](basics)
- [Quick start](quickstart/)
- [Basics tutorial](basics/)

View File

@ -1,5 +1,5 @@
---
title: Basics Tutorial
title: Basics tutorial
description: A basic tutorial introduction to gRPC-web.
weight: 50
---

View File

@ -1,5 +1,5 @@
---
title: Quick Start
title: Quick start
description: This guide gets you started with gRPC-Web with a simple working example.
weight: 10
---
@ -89,8 +89,7 @@ This example app has three key components:
### What's next
- Work through a more detailed tutorial in [gRPC Basics:
Web](/docs/tutorials/basic/web/).
- Work through the [Basics tutorial](../basics/).
[grpc-web]: https://github.com/grpc/grpc-web
[download]: https://github.com/grpc/grpc-web/archive/master.zip
[grpc-web]: https://github.com/grpc/grpc-web

View File

@ -1,8 +1,8 @@
---
title: Quick Start
title: Quick start
description: Get started with gRPC.
---
There is a Quick Start for each gRPC supported language with accompanying sample
There is a quick start for each gRPC supported language with accompanying sample
code for a simple "Hello World" example for you to explore and update. Select a
[language](/docs/languages) to get started.
[language](/docs/languages/) to get started.

View File

@ -5,5 +5,5 @@ weight: 1
New to gRPC? Start with the following pages:
- [Introduction to gRPC](introduction)
- [Core concepts, architecture and lifecycle](core-concepts)
- [Introduction to gRPC](introduction/)
- [Core concepts, architecture and lifecycle](core-concepts/)

View File

@ -6,8 +6,8 @@ description: >-
and RPC life cycle.
---
Not familiar with gRPC? First read [Introduction to gRPC](../introduction). For
language-specific details, see the Quick Start, tutorial, and reference
Not familiar with gRPC? First read [Introduction to gRPC](../introduction/). For
language-specific details, see the quick start, tutorial, and reference
documentation for your language of choice.
### Overview
@ -195,7 +195,7 @@ terminates the RPC immediately so that no further work is done.
#### Metadata
Metadata is information about a particular RPC call (such as [authentication
details](/docs/guides/auth)) in the form of a list of key-value pairs, where the
details](/docs/guides/auth/)) in the form of a list of key-value pairs, where the
keys are strings and the values are typically strings, but can be binary data.
Metadata is opaque to gRPC itself - it lets the client provide information
associated with the call to the server and vice versa.
@ -206,7 +206,7 @@ Access to metadata is language dependent.
A gRPC channel provides a connection to a gRPC server on a specified host and
port. It is used when creating a client stub. Clients can specify channel
arguments to modify gRPC's default behaviour, such as switching message
arguments to modify gRPC's default behavior, such as switching message
compression on or off. A channel has state, including `connected` and `idle`.
How gRPC deals with closing a channel is language dependent. Some languages also

View File

@ -3,13 +3,14 @@ title: Introduction to gRPC
short: Introduction
description: An introduction to gRPC and protocol buffers.
weight: 10
spelling: cSpell:ignore ponycopter
---
This page introduces you to gRPC and protocol buffers. gRPC can use
protocol buffers as both its Interface Definition Language (**IDL**) and as its underlying message
interchange format. If youre new to gRPC and/or protocol buffers, read this!
If you just want to dive in and see gRPC in action first,
see our [Quick Starts](/docs/quickstart).
[select a language](/docs/languages/) and try its **Quick start**.
## Overview
@ -24,7 +25,12 @@ languages) that provides the same methods as the server.
![Concept Diagram](/img/landing-2.svg)
gRPC clients and servers can run and talk to each other in a variety of environments - from servers inside Google to your own desktop - and can be written in any of gRPC's supported languages. So, for example, you can easily create a gRPC server in Java with clients in Go, Python, or Ruby. In addition, the latest Google APIs will have gRPC versions of their interfaces, letting you easily build Google functionality into your applications.
gRPC clients and servers can run and talk to each other in a variety of
environments - from servers inside Google to your own desktop - and can be
written in any of gRPC's supported languages. So, for example, you can easily
create a gRPC server in Java with clients in Go, Python, or Ruby. In addition,
the latest Google APIs will have gRPC versions of their interfaces, letting you
easily build Google functionality into your applications.
### Working with Protocol Buffers

View File

@ -8,7 +8,7 @@ Here are some frequently asked questions. Hope you find your answer here :-)
gRPC is a modern, open source remote procedure call (RPC) framework that can run anywhere. It enables client and server applications to communicate transparently, and makes it easier to build connected systems.
Read the longer [Motivation & Design Principles](/blog/principles) post for background on why we created gRPC.
Read the longer [Motivation & Design Principles](/blog/principles/) post for background on why we created gRPC.
### What does gRPC stand for?
@ -33,11 +33,11 @@ Google has been using a lot of the underlying technologies and concepts in gRPC
See [Officially supported languages and platforms][].
[Officially supported languages and platforms]: /about#officially-supported-languages-and-platforms
[Officially supported languages and platforms]: /about/#officially-supported-languages-and-platforms
### How do I get started using gRPC?
You can start with installation of gRPC by following instructions [here](/docs/quickstart). Or head over to the [gRPC GitHub org page](https://github.com/grpc), pick the runtime or language you are interested in, and follow the README instructions.
You can start with installation of gRPC by following instructions [here](/docs/quickstart/). Or head over to the [gRPC GitHub org page](https://github.com/grpc), pick the runtime or language you are interested in, and follow the README instructions.
### Which license is gRPC under?
@ -49,9 +49,9 @@ All implementations are licensed under [Apache 2.0](https://github.com/grpc/grpc
### Where is the documentation?
Check out the [documentation](/docs) right here on grpc.io.
Check out the [documentation](/docs/) right here on grpc.io.
### What is the roadmap?
### What is the road map?
The gRPC project has an RFC process, through which new features are designed and approved for implementation. They are tracked in [this repository](https://github.com/grpc/proposal).

View File

@ -15,7 +15,7 @@
{{ end }}
</ul>
<a class="is-size-4" href="/blog">
<a class="is-size-4" href="/blog/">
More...
</a>
</div>

View File

@ -8,7 +8,7 @@
</p>
<div class="buttons are-medium is-centered">
<a class="button is-primary has-text-weight-bold" href="/docs/what-is-grpc/introduction">
<a class="button is-primary has-text-weight-bold" href="/docs/what-is-grpc/introduction/">
Learn more
</a>
</div>
@ -17,22 +17,22 @@
<p class="title is-size-3 is-size-4-mobile">Get started!</p>
<div class="buttons are-medium is-centered">
<a class="button is-primary" href="/docs/languages/go/quickstart">
<a class="button is-primary" href="/docs/languages/go/quickstart/">
Go
</a>
<a class="button is-primary" href="/docs/languages/cpp/quickstart">
<a class="button is-primary" href="/docs/languages/cpp/quickstart/">
C++
</a>
<a class="button is-primary" href="/docs/languages/java/quickstart">
<a class="button is-primary" href="/docs/languages/java/quickstart/">
Java
</a>
<a class="button is-primary" href="/docs/languages/python/quickstart">
<a class="button is-primary" href="/docs/languages/python/quickstart/">
Python
</a>
<a class="button is-primary" href="/docs/languages/csharp/quickstart">
<a class="button is-primary" href="/docs/languages/csharp/quickstart/">
C#
</a>
<a class="button is-primary" href="/docs/languages">
<a class="button is-primary" href="/docs/languages/">
<i class="fas fa-ellipsis-h"></i>
</a>
</div>