blob: 1960f44137cabac324024d7c3fd84885ca876c26 [file] [log] [blame] [view]
Jan Tattermuschf389e522018-06-12 17:26:31 +02001gRPC - An RPC library and framework
Abhishek Kumar79daae32015-01-16 16:17:21 -08002===================================
3
Jan Tattermuschf389e522018-06-12 17:26:31 +02004gRPC is a modern, open source, high-performance 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.
5
6<table>
7 <tr>
8 <td><b>Homepage:</b></td>
9 <td><a href="https://grpc.io/">grpc.io</a></td>
10 </tr>
11 <tr>
12 <td><b>Mailing List:</b></td>
13 <td><a href="https://groups.google.com/forum/#!forum/grpc-io">grpc-io@googlegroups.com</a></td>
14 </tr>
15</table>
16
The Gitter Badger472f8642016-01-27 21:46:49 +000017[![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)
18
Jan Tattermuschf389e522018-06-12 17:26:31 +020019# To start using gRPC
Abhishek Kumar79daae32015-01-16 16:17:21 -080020
Jan Tattermuschf389e522018-06-12 17:26:31 +020021To maximize usability, gRPC supports the standard way of adding dependencies in your language of choice (if there is one).
22In most languages, the gRPC runtime comes in form of a package available in your language's package manager.
Matt Ward7c26b0e2015-04-02 19:04:30 -070023
Jan Tattermuschf389e522018-06-12 17:26:31 +020024For instructions on how to use the language-specific gRPC runtime in your project, please refer to these documents
Matt Ward7c26b0e2015-04-02 19:04:30 -070025
Jan Tattermuschf389e522018-06-12 17:26:31 +020026 * [C++](src/cpp): follow the instructions under the `src/cpp` directory
27 * [C#](src/csharp): NuGet package `Grpc`
28 * [Dart](https://github.com/grpc/grpc-dart): pub package `grpc`
29 * [Go](https://github.com/grpc/grpc-go): `go get google.golang.org/grpc`
30 * [Java](https://github.com/grpc/grpc-java): Use JARs from Maven Central Repository
31 * [Node](https://github.com/grpc/grpc-node): `npm install grpc`
32 * [Objective-C](src/objective-c): Add `gRPC-ProtoRPC` dependency to podspec
33 * [PHP](src/php): `pecl install grpc`
34 * [Python](src/python/grpcio): `pip install grpcio`
35 * [Ruby](src/ruby): `gem install grpc`
36 * [WebJS](https://github.com/grpc/grpc-web): follow the grpc-web instructions
Abhishek Kumar79daae32015-01-16 16:17:21 -080037
Jan Tattermuschf389e522018-06-12 17:26:31 +020038You can find per-language quickstart guides and tutorials in [Documentation section on grpc.io website](https://grpc.io/docs/). The code examples are available in the [examples](examples) directory.
Abhishek Kumar79daae32015-01-16 16:17:21 -080039
Mehrdad Afsharie971fa42018-07-23 18:29:28 -070040Precompiled bleeding-edge package builds of gRPC `master` branch's `HEAD` are uploaded daily to [packages.grpc.io](https://packages.grpc.io).
41
Jan Tattermuschf389e522018-06-12 17:26:31 +020042# To start developing gRPC
43
44Contributions are welcome!
45
46Please read [How to contribute](CONTRIBUTING.md) which will guide you through the entire workflow of how to build the source code, how to run the tests and how to contribute your changes to
47the gRPC codebase.
48The document also contains info on how the contributing process works and contains best practices for creating contributions.
49
Jan Tattermusch19010452018-07-06 14:52:34 +020050# Troubleshooting
51
52Sometimes things go wrong. Please check out the [Troubleshooting guide](TROUBLESHOOTING.md) if you are experiencing issues with gRPC.
53
Jan Tattermuschf389e522018-06-12 17:26:31 +020054# Performance
Jan Tattermusch94a0c922016-05-19 11:59:14 -070055
Adele Zhoua8589902017-07-20 14:29:39 -070056See [Performance dashboard](http://performance-dot-grpc-testing.appspot.com/explore?dashboard=5636470266134528) for the performance numbers for the latest released version.
Adele Zhou015998f2016-12-06 16:05:07 -080057
Jan Tattermuschf389e522018-06-12 17:26:31 +020058# Concepts
59
60See [gRPC Concepts](CONCEPTS.md)
61
62# About This Repository
Jayant Kolhe6a769e02015-02-18 14:04:29 -080063
Mehrdad Afshari566fd3b2017-04-20 15:53:51 -070064This repository contains source code for gRPC libraries for multiple languages written on top of shared C core library [src/core](src/core).
Jayant Kolhec284c542015-02-19 11:06:58 -080065
Jan Tattermusch580e9762016-10-12 17:42:55 +020066Libraries in different languages may be in different states of development. We are seeking contributions for all of these libraries.
Jayant Kolhec284c542015-02-19 11:06:58 -080067
Mehrdad Afshari36b42ec2017-12-11 12:31:59 -080068| Language | Source |
69|-------------------------|-------------------------------------|
70| Shared C [core library] | [src/core](src/core) |
71| C++ | [src/cpp](src/cpp) |
72| Ruby | [src/ruby](src/ruby) |
73| Python | [src/python](src/python) |
74| PHP | [src/php](src/php) |
75| C# | [src/csharp](src/csharp) |
76| Objective-C | [src/objective-c](src/objective-c) |
Jacob Youngcd00c6f2015-12-02 02:04:58 -080077
Michael Thomsen67bffee2018-03-06 22:56:57 +010078| Language | Source repo |
79|-------------------------|------------------------------------------------------|
80| Java | [grpc-java](http://github.com/grpc/grpc-java) |
81| Go | [grpc-go](http://github.com/grpc/grpc-go) |
82| NodeJS | [grpc-node](https://github.com/grpc/grpc-node) |
Wenbo Zhu09963462018-04-25 10:22:29 -070083| WebJS | [grpc-web](https://github.com/grpc/grpc-web) |
Michael Thomsen67bffee2018-03-06 22:56:57 +010084| Dart | [grpc-dart](https://github.com/grpc/grpc-dart) |
Jacob Youngcd00c6f2015-12-02 02:04:58 -080085