105 lines
4.4 KiB
Markdown
105 lines
4.4 KiB
Markdown
# gRPC – An RPC library and framework
|
||
|
||
gRPC is a modern, open source, high-performance remote procedure call (RPC)
|
||
framework that can run anywhere. gRPC enables client and server applications to
|
||
communicate transparently, and simplifies the building of connected systems.
|
||
|
||
<table>
|
||
<tr>
|
||
<td><b>Homepage:</b></td>
|
||
<td><a href="https://grpc.io/">grpc.io</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td><b>Mailing List:</b></td>
|
||
<td><a href="https://groups.google.com/forum/#!forum/grpc-io">grpc-io@googlegroups.com</a></td>
|
||
</tr>
|
||
</table>
|
||
|
||
[](https://gitter.im/grpc/grpc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||
|
||
## To start using gRPC
|
||
|
||
To maximize usability, gRPC supports the standard method for adding dependencies
|
||
to a user's chosen language (if there is one). In most languages, the gRPC
|
||
runtime comes as a package available in a user's language package manager.
|
||
|
||
For instructions on how to use the language-specific gRPC runtime for a project,
|
||
please refer to these documents
|
||
|
||
- [C++](src/cpp): follow the instructions under the `src/cpp` directory
|
||
- [C#/.NET](https://github.com/grpc/grpc-dotnet): NuGet packages
|
||
`Grpc.Net.Client`, `Grpc.AspNetCore.Server`
|
||
- [Dart](https://github.com/grpc/grpc-dart): pub package `grpc`
|
||
- [Go](https://github.com/grpc/grpc-go): `go get google.golang.org/grpc`
|
||
- [Java](https://github.com/grpc/grpc-java): Use JARs from Maven Central
|
||
Repository
|
||
- [Kotlin](https://github.com/grpc/grpc-kotlin): Use JARs from Maven Central
|
||
Repository
|
||
- [Node](https://github.com/grpc/grpc-node): `npm install @grpc/grpc-js`
|
||
- [Objective-C](src/objective-c): Add `gRPC-ProtoRPC` dependency to podspec
|
||
- [PHP](src/php): `pecl install grpc`
|
||
- [Python](src/python/grpcio): `pip install grpcio`
|
||
- [Ruby](src/ruby): `gem install grpc`
|
||
- [WebJS](https://github.com/grpc/grpc-web): follow the grpc-web instructions
|
||
|
||
Per-language quickstart guides and tutorials can be found in the
|
||
[documentation section on the grpc.io website](https://grpc.io/docs/). Code
|
||
examples are available in the [examples](examples) directory.
|
||
|
||
Precompiled bleeding-edge package builds of gRPC `master` branch's `HEAD` are
|
||
uploaded daily to [packages.grpc.io](https://packages.grpc.io).
|
||
|
||
## To start developing gRPC
|
||
|
||
Contributions are welcome!
|
||
|
||
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 changes to the gRPC codebase. The "How to contribute" document
|
||
also contains info on how the contribution process works and contains best
|
||
practices for creating contributions.
|
||
|
||
## Troubleshooting
|
||
|
||
Sometimes things go wrong. Please check out the
|
||
[Troubleshooting guide](TROUBLESHOOTING.md) if you are experiencing issues with
|
||
gRPC.
|
||
|
||
## Performance
|
||
|
||
See the [Performance dashboard](https://grafana-dot-grpc-testing.appspot.com/)
|
||
for performance numbers of master branch daily builds.
|
||
|
||
## Concepts
|
||
|
||
See [gRPC Concepts](CONCEPTS.md)
|
||
|
||
## About This Repository
|
||
|
||
This repository contains source code for gRPC libraries implemented in multiple
|
||
languages written on top of a shared C++ core library [src/core](src/core).
|
||
|
||
Libraries in different languages may be in various states of development. We are
|
||
seeking contributions for all of these libraries:
|
||
|
||
Language | Source
|
||
------------------------- | ----------------------------------
|
||
Shared C++ [core library] | [src/core](src/core)
|
||
C++ | [src/cpp](src/cpp)
|
||
Ruby | [src/ruby](src/ruby)
|
||
Python | [src/python](src/python)
|
||
PHP | [src/php](src/php)
|
||
C# (core library based) | [src/csharp](src/csharp)
|
||
Objective-C | [src/objective-c](src/objective-c)
|
||
|
||
Language | Source repo
|
||
-------------------- | --------------------------------------------------
|
||
Java | [grpc-java](https://github.com/grpc/grpc-java)
|
||
Kotlin | [grpc-kotlin](https://github.com/grpc/grpc-kotlin)
|
||
Go | [grpc-go](https://github.com/grpc/grpc-go)
|
||
NodeJS | [grpc-node](https://github.com/grpc/grpc-node)
|
||
WebJS | [grpc-web](https://github.com/grpc/grpc-web)
|
||
Dart | [grpc-dart](https://github.com/grpc/grpc-dart)
|
||
.NET (pure C# impl.) | [grpc-dotnet](https://github.com/grpc/grpc-dotnet)
|
||
Swift | [grpc-swift](https://github.com/grpc/grpc-swift)
|