Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 1 | gRPC - An RPC library and framework |
Abhishek Kumar | 79daae3 | 2015-01-16 16:17:21 -0800 | [diff] [blame] | 2 | =================================== |
| 3 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 4 | gRPC 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 Badger | 472f864 | 2016-01-27 21:46:49 +0000 | [diff] [blame] | 17 | [](https://gitter.im/grpc/grpc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) |
| 18 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 19 | # To start using gRPC |
Abhishek Kumar | 79daae3 | 2015-01-16 16:17:21 -0800 | [diff] [blame] | 20 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 21 | To maximize usability, gRPC supports the standard way of adding dependencies in your language of choice (if there is one). |
| 22 | In most languages, the gRPC runtime comes in form of a package available in your language's package manager. |
Matt Ward | 7c26b0e | 2015-04-02 19:04:30 -0700 | [diff] [blame] | 23 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 24 | For instructions on how to use the language-specific gRPC runtime in your project, please refer to these documents |
Matt Ward | 7c26b0e | 2015-04-02 19:04:30 -0700 | [diff] [blame] | 25 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 26 | * [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 Kumar | 79daae3 | 2015-01-16 16:17:21 -0800 | [diff] [blame] | 37 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 38 | You 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 Kumar | 79daae3 | 2015-01-16 16:17:21 -0800 | [diff] [blame] | 39 | |
Mehrdad Afshari | e971fa4 | 2018-07-23 18:29:28 -0700 | [diff] [blame] | 40 | Precompiled bleeding-edge package builds of gRPC `master` branch's `HEAD` are uploaded daily to [packages.grpc.io](https://packages.grpc.io). |
| 41 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 42 | # To start developing gRPC |
| 43 | |
| 44 | Contributions are welcome! |
| 45 | |
| 46 | Please 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 |
| 47 | the gRPC codebase. |
| 48 | The document also contains info on how the contributing process works and contains best practices for creating contributions. |
| 49 | |
Jan Tattermusch | 1901045 | 2018-07-06 14:52:34 +0200 | [diff] [blame] | 50 | # Troubleshooting |
| 51 | |
| 52 | Sometimes things go wrong. Please check out the [Troubleshooting guide](TROUBLESHOOTING.md) if you are experiencing issues with gRPC. |
| 53 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 54 | # Performance |
Jan Tattermusch | 94a0c92 | 2016-05-19 11:59:14 -0700 | [diff] [blame] | 55 | |
Adele Zhou | a858990 | 2017-07-20 14:29:39 -0700 | [diff] [blame] | 56 | See [Performance dashboard](http://performance-dot-grpc-testing.appspot.com/explore?dashboard=5636470266134528) for the performance numbers for the latest released version. |
Adele Zhou | 015998f | 2016-12-06 16:05:07 -0800 | [diff] [blame] | 57 | |
Jan Tattermusch | f389e52 | 2018-06-12 17:26:31 +0200 | [diff] [blame] | 58 | # Concepts |
| 59 | |
| 60 | See [gRPC Concepts](CONCEPTS.md) |
| 61 | |
| 62 | # About This Repository |
Jayant Kolhe | 6a769e0 | 2015-02-18 14:04:29 -0800 | [diff] [blame] | 63 | |
Mehrdad Afshari | 566fd3b | 2017-04-20 15:53:51 -0700 | [diff] [blame] | 64 | This repository contains source code for gRPC libraries for multiple languages written on top of shared C core library [src/core](src/core). |
Jayant Kolhe | c284c54 | 2015-02-19 11:06:58 -0800 | [diff] [blame] | 65 | |
Jan Tattermusch | 580e976 | 2016-10-12 17:42:55 +0200 | [diff] [blame] | 66 | Libraries in different languages may be in different states of development. We are seeking contributions for all of these libraries. |
Jayant Kolhe | c284c54 | 2015-02-19 11:06:58 -0800 | [diff] [blame] | 67 | |
Mehrdad Afshari | 36b42ec | 2017-12-11 12:31:59 -0800 | [diff] [blame] | 68 | | 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 Young | cd00c6f | 2015-12-02 02:04:58 -0800 | [diff] [blame] | 77 | |
Michael Thomsen | 67bffee | 2018-03-06 22:56:57 +0100 | [diff] [blame] | 78 | | 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 Zhu | 0996346 | 2018-04-25 10:22:29 -0700 | [diff] [blame] | 83 | | WebJS | [grpc-web](https://github.com/grpc/grpc-web) | |
Michael Thomsen | 67bffee | 2018-03-06 22:56:57 +0100 | [diff] [blame] | 84 | | Dart | [grpc-dart](https://github.com/grpc/grpc-dart) | |
Jacob Young | cd00c6f | 2015-12-02 02:04:58 -0800 | [diff] [blame] | 85 | |