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