xref: /aosp_15_r20/external/grpc-grpc/README.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1# gRPC – An RPC library and framework
2
3gRPC is a modern, open source, high-performance remote procedure call (RPC)
4framework that can run anywhere. gRPC enables client and server applications to
5communicate transparently, and simplifies the building of connected systems.
6
7<table>
8  <tr>
9    <td><b>Homepage:</b></td>
10    <td><a href="https://grpc.io/">grpc.io</a></td>
11  </tr>
12  <tr>
13    <td><b>Mailing List:</b></td>
14    <td><a href="https://groups.google.com/forum/#!forum/grpc-io">[email protected]</a></td>
15  </tr>
16</table>
17
18[![Join the chat at https://gitter.im/grpc/grpc](https://badges.gitter.im/grpc/grpc.svg)](https://gitter.im/grpc/grpc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
19
20## To start using gRPC
21
22To maximize usability, gRPC supports the standard method for adding dependencies
23to a user's chosen language (if there is one). In most languages, the gRPC
24runtime comes as a package available in a user's language package manager.
25
26For instructions on how to use the language-specific gRPC runtime for a project,
27please refer to these documents
28
29-   [C++](src/cpp): follow the instructions under the `src/cpp` directory
30-   [C#/.NET](https://github.com/grpc/grpc-dotnet): NuGet packages
31    `Grpc.Net.Client`, `Grpc.AspNetCore.Server`
32-   [Dart](https://github.com/grpc/grpc-dart): pub package `grpc`
33-   [Go](https://github.com/grpc/grpc-go): `go get google.golang.org/grpc`
34-   [Java](https://github.com/grpc/grpc-java): Use JARs from Maven Central
35    Repository
36-   [Kotlin](https://github.com/grpc/grpc-kotlin): Use JARs from Maven Central
37    Repository
38-   [Node](https://github.com/grpc/grpc-node): `npm install @grpc/grpc-js`
39-   [Objective-C](src/objective-c): Add `gRPC-ProtoRPC` dependency to podspec
40-   [PHP](src/php): `pecl install grpc`
41-   [Python](src/python/grpcio): `pip install grpcio`
42-   [Ruby](src/ruby): `gem install grpc`
43-   [WebJS](https://github.com/grpc/grpc-web): follow the grpc-web instructions
44
45Per-language quickstart guides and tutorials can be found in the
46[documentation section on the grpc.io website](https://grpc.io/docs/). Code
47examples are available in the [examples](examples) directory.
48
49Precompiled bleeding-edge package builds of gRPC `master` branch's `HEAD` are
50uploaded daily to [packages.grpc.io](https://packages.grpc.io).
51
52## To start developing gRPC
53
54Contributions are welcome!
55
56Please read [How to contribute](CONTRIBUTING.md) which will guide you through
57the entire workflow of how to build the source code, how to run the tests, and
58how to contribute changes to the gRPC codebase. The "How to contribute" document
59also contains info on how the contribution process works and contains best
60practices for creating contributions.
61
62## Troubleshooting
63
64Sometimes things go wrong. Please check out the
65[Troubleshooting guide](TROUBLESHOOTING.md) if you are experiencing issues with
66gRPC.
67
68## Performance
69
70See the [Performance dashboard](https://grafana-dot-grpc-testing.appspot.com/)
71for performance numbers of master branch daily builds.
72
73## Concepts
74
75See [gRPC Concepts](CONCEPTS.md)
76
77## About This Repository
78
79This repository contains source code for gRPC libraries implemented in multiple
80languages written on top of a shared C++ core library [src/core](src/core).
81
82Libraries in different languages may be in various states of development. We are
83seeking contributions for all of these libraries:
84
85Language                  | Source
86------------------------- | ----------------------------------
87Shared C++ [core library] | [src/core](src/core)
88C++                       | [src/cpp](src/cpp)
89Ruby                      | [src/ruby](src/ruby)
90Python                    | [src/python](src/python)
91PHP                       | [src/php](src/php)
92C# (core library based)   | [src/csharp](src/csharp)
93Objective-C               | [src/objective-c](src/objective-c)
94
95Language             | Source repo
96-------------------- | --------------------------------------------------
97Java                 | [grpc-java](https://github.com/grpc/grpc-java)
98Kotlin               | [grpc-kotlin](https://github.com/grpc/grpc-kotlin)
99Go                   | [grpc-go](https://github.com/grpc/grpc-go)
100NodeJS               | [grpc-node](https://github.com/grpc/grpc-node)
101WebJS                | [grpc-web](https://github.com/grpc/grpc-web)
102Dart                 | [grpc-dart](https://github.com/grpc/grpc-dart)
103.NET (pure C# impl.) | [grpc-dotnet](https://github.com/grpc/grpc-dotnet)
104Swift                | [grpc-swift](https://github.com/grpc/grpc-swift)
105