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 `Grpc.Net.Client`, `Grpc.AspNetCore.Server`
31- [Dart](https://github.com/grpc/grpc-dart): pub package `grpc`
32- [Go](https://github.com/grpc/grpc-go): `go get google.golang.org/grpc`
33- [Java](https://github.com/grpc/grpc-java): Use JARs from Maven Central
34  Repository
35- [Kotlin](https://github.com/grpc/grpc-kotlin): Use JARs from Maven Central
36  Repository
37- [Node](https://github.com/grpc/grpc-node): `npm install @grpc/grpc-js`
38- [Objective-C](src/objective-c): Add `gRPC-ProtoRPC` dependency to podspec
39- [PHP](src/php): `pecl install grpc`
40- [Python](src/python/grpcio): `pip install grpcio`
41- [Ruby](src/ruby): `gem install grpc`
42- [WebJS](https://github.com/grpc/grpc-web): follow the grpc-web instructions
43
44Per-language quickstart guides and tutorials can be found in the
45[documentation section on the grpc.io website](https://grpc.io/docs/). Code
46examples are available in the [examples](examples) directory.
47
48Precompiled bleeding-edge package builds of gRPC `master` branch's `HEAD` are
49uploaded daily to [packages.grpc.io](https://packages.grpc.io).
50
51## To start developing gRPC
52
53Contributions are welcome!
54
55Please read [How to contribute](CONTRIBUTING.md) which will guide you through
56the entire workflow of how to build the source code, how to run the tests, and
57how to contribute changes to the gRPC codebase. The "How to contribute" document
58also contains info on how the contribution process works and contains best
59practices for creating contributions.
60
61## Troubleshooting
62
63Sometimes things go wrong. Please check out the
64[Troubleshooting guide](TROUBLESHOOTING.md) if you are experiencing issues with
65gRPC.
66
67## Performance
68
69See the
70[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
85| Language                | Source                             |
86| ----------------------- | ---------------------------------- |
87| Shared C [core library] | [src/core](src/core)               |
88| C++                     | [src/cpp](src/cpp)                 |
89| Ruby                    | [src/ruby](src/ruby)               |
90| Python                  | [src/python](src/python)           |
91| PHP                     | [src/php](src/php)                 |
92| C# (core library based) | [src/csharp](src/csharp)           |
93| Objective-C             | [src/objective-c](src/objective-c) |
94
95| Language             | Source repo                                        |
96| -------------------- | -------------------------------------------------- |
97| Java                 | [grpc-java](https://github.com/grpc/grpc-java)     |
98| Kotlin               | [grpc-kotlin](https://github.com/grpc/grpc-kotlin) |
99| Go                   | [grpc-go](https://github.com/grpc/grpc-go)         |
100| NodeJS               | [grpc-node](https://github.com/grpc/grpc-node)     |
101| WebJS                | [grpc-web](https://github.com/grpc/grpc-web)       |
102| Dart                 | [grpc-dart](https://github.com/grpc/grpc-dart)     |
103| .NET (pure C# impl.) | [grpc-dotnet](https://github.com/grpc/grpc-dotnet) |
104| Swift                | [grpc-swift](https://github.com/grpc/grpc-swift) |
105