Giter Club home page Giter Club logo

grpc.io's Introduction

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.

Homepage: grpc.io
Mailing List: [email protected]

Join the chat at https://gitter.im/grpc/grpc

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++: follow the instructions under the src/cpp directory
  • C#/.NET: NuGet packages Grpc.Net.Client, Grpc.AspNetCore.Server
  • Dart: pub package grpc
  • Go: go get google.golang.org/grpc
  • Java: Use JARs from Maven Central Repository
  • Kotlin: Use JARs from Maven Central Repository
  • Node: npm install @grpc/grpc-js
  • Objective-C: Add gRPC-ProtoRPC dependency to podspec
  • PHP: pecl install grpc
  • Python: pip install grpcio
  • Ruby: gem install grpc
  • WebJS: follow the grpc-web instructions

Per-language quickstart guides and tutorials can be found in the documentation section on the grpc.io website. Code examples are available in the examples directory.

Precompiled bleeding-edge package builds of gRPC master branch's HEAD are uploaded daily to packages.grpc.io.

To start developing gRPC

Contributions are welcome!

Please read How to contribute 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 if you are experiencing issues with gRPC.

Performance

See the Performance dashboard for performance numbers of master branch daily builds.

Concepts

See gRPC Concepts

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.

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
C++ src/cpp
Ruby src/ruby
Python src/python
PHP src/php
C# (core library based) src/csharp
Objective-C src/objective-c
Language Source repo
Java grpc-java
Kotlin grpc-kotlin
Go grpc-go
NodeJS grpc-node
WebJS grpc-web
Dart grpc-dart
.NET (pure C# impl.) grpc-dotnet
Swift grpc-swift

grpc.io's People

Contributors

aidanranney avatar chalin avatar cjyabraham avatar ctoomey avatar dapengzhang0 avatar dfawley avatar drfloob avatar easwars avatar ejona86 avatar ericgribkoff avatar geekrypter avatar gnossen avatar jtattermusch avatar larry-safran avatar lidizheng avatar lucperkins avatar markdroth avatar murgatroid99 avatar nicolasnoble avatar sanjaypujare avatar sean0628 avatar sergiitk avatar shirhatti avatar srini100 avatar temawi avatar veblush avatar voidzcy avatar yashykt avatar yifeizhuang avatar zasweq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grpc.io's Issues

c++ bazel instructions don't work

https://github.com/grpc/grpc/blob/master/src/cpp/README.md#make
It looks like bazel has had a non-backwards compatible upgrade since this page was written - the http_archive rule needs to be imported/included.
I got it working by adding
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

Additionally and on a less technical front, it'd probably be worth explaining:

  • that the example code needs to be in a WORKSPACE file
  • how to choose a grpc version

At the moment, there are significant unnecessary barriers to grpc newbies: you/we are telling them to use bazel, which they may never have used before, but expecting them to know how to use bazel already. You/we are also assuming they know which commit hash they should be using.

Broken link in C++ API reference page

Describe the bug
The following link in the C++ documentation is broken: https://grpc.github.io/grpc/cpp/classgrpc__impl_1_1_server_context_base.html

To Reproduce
Go to: https://grpc.github.io/grpc/cpp/classgrpc__impl_1_1_server_context_base.html
Recieve a 404.

Expected behavior
The ServerContextBase documentation loads.

Screenshots
image

Additional context
This is especially annoying as many methods in ServerContext are inherited from here and I can't access the documentation through your site.

syntax error in package - re-created as previous closed with no solution

python -m pip install grpc --no-cache-dir
Collecting grpc
Downloading https://files.pythonhosted.org/packages/dd/63/e25fa1e7dbbd44ae4d2d5ceb1bfef517849c854795e73d01bfd3d250a8b1/grpc-0.3-19.tar.gz
ERROR: Complete output from command python setup.py egg_info:
ERROR: Traceback (most recent call last):
File "", line 1, in
File "C:\Users\major\AppData\Local\Temp\pip-install-r9czerqi\grpc\setup.py", line 7, in
version_tuple = import('grpc').VERSION
File "C:\Users\major\AppData\Local\Temp\pip-install-r9czerqi\grpc\grpc_init_.py", line 6, in
from .rpc import *
File "C:\Users\major\AppData\Local\Temp\pip-install-r9czerqi\grpc\grpc\rpc.py", line 141
except OSError, ex:
^
SyntaxError: invalid syntax
----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in C:\Users\major\AppData\Local\Temp\pip-install-r9czerqi\grpc\

How big should a single service be?

Hello,

How big should a single grpc service be? How many rpc's is "too many" in general or as a rough heuristic? What are the typical considerations when deciding what to lump together vs split? I apologize if this is the wrong place to ask these questions. Thank you.

Migrate documentation from grpc doc folder to the grpc/grpc.io repository

Currently, I see two main sources of documentation for the grpc.io:

I think it would be a good idea to have a centralized place for the documentation so that contributors know where to contribute new content.

I would suggest to migrate it here as it will have a clean URL that will make it easier to find through a web search.

Heading styles are confusing

h5 has a smaller font than regular paragraph text. See here or here. Can it be made larger and more distinct?

Also, h2s are still smaller than h3s which is problematic on a page like this.

Use a CSS framework

Right now, the site's CSS is 100% bespoke. This makes it quite difficult to update the site's aesthetic and to ensure things like mobile friendliness in a consistent manner. The site should use a CSS framework with built-in responsiveness capabilities, off-the-shelf components, and the like.

Upgrade from v0.55.0 to latest Hugo version

I just realized that #87 goes away when using the latest Hugo version (0.65.x), probably because of the switch (since 0.59.x) to adhering to CommonMark markdown syntax.

Of course there is some risk in switching to the latest version if Hugo in that some pages might be rendered differently. But that is partly the point, in some cases, the difference is a fix in the interpretation of the markdown. The risk can be mitigated by diffing the generated sites.

@thisisnotapril WDYT?

C++ quick start issues

From https://groups.google.com/d/msgid/grpc-io/a13d4456-fbb6-4b89-922f-69672804a07f%40googlegroups.com:

  1. https://grpc.io/docs/quickstart/cpp/ says "follow the instructions to install gRPC C++ via make", but the linked page leads with bazel (with a secondary reference to cmake).
  2. The linked page: https://github.com/grpc/grpc/blob/master/src/cpp/README.md#make doesn't work. I think it may be because http_archive has been moved/deprecated but the rules don't include the relevant spell to import it - see https://stackoverflow.com/questions/56229865/build-breaking-after-bazel-upgrade

@nicolasnoble writes:

We should direct people towards Bazel as much as possible for the quickstart, especially since the ./tools/bazel script should be fine for Linux and windows even if Bazel isn't installed.

cc @thisisnotapril

C# can't really use Inproc transport as indicated by "language stacks" blogpost

This is a copy of an unfixed problem: grpc/grpc.github.io#803


https://grpc.io/blog/grpc-stacks mentions "For example, you could use C# instead, and use an In-Process transport", which doesn't seem to be accurate. While this is true in principle, C# actually doesn't expose the APIs to create in-proc channel (such as https://github.com/grpc/grpc/blob/618a3f561d4a93f263cca23abad086ed8f4d5e86/src/core/ext/transport/inproc/inproc_transport.h#L26), and therefore you can't currently use an inproc transport with C#.
We should update the blogpost and provide a better example.

This has been pointed out by https://groups.google.com/forum/#!msg/grpc-io/-H_Zjletyng/Q8xuwFluAgAJ.

Do you consider adding resources from external contributors in website

Apologies If I made this query in the wrong place. I am curious to know whether you are accepting resources from external contributors to the grpc.io website.

The reason behind this query is, we(@kasun04 and @daneshk) wrote a new book on gRPC 'gRPC Up and Running' recently and we created samples in different languages around this book. You can find the source code in here.
I just want to check whether you consider adding these kinds of resources in your website under external resources.

If you do, we are happy to contribute. Looking forward to hearing from you.
Thanks in advance
Danesh

`make serve` broken on master

make serve does not currently work on master:

rbellevi@rbell:~/Dev/grpc.io$ make serve
hugo server \
        --buildDrafts \
        --buildFuture \
        --disableFastRender
Built in 192 ms
Error: Error building site: TOCSS: failed to transform "sass/style.sass" (text/x-sass): resource "sass/sass/style.sass_5538683f21764355e16f4f866a5e0357" not found in file cache
make: *** [Makefile:9: serve] Error 255
rbellevi@rbell:~/Dev/grpc.io$ hugo version
Hugo Static Site Generator v0.67.1-4F44227B linux/amd64 BuildDate: 2020-03-15T19:31:42Z

d721e7c appears to be the first bad commit:

git bisect start master 599c577dbd714eedcd3c83a52099adedc3380b98
git bisect run bash -c 'timeout -s INT 2 make serve; [ "$?" == "124" ]'

I'm also unable to test changes via make docker-serve, meaning we currently have no ability to test out changes to grpc.io.

CC @lucperkins
CC @chalin
CC @thisisnotapril

Web feed

I cannot find a URL for an RSS or Atom feed to subscribe to for your blog. Please advise.

https://grpc.io/feed used to work but no longer does. Thank you.

Kotlin gRPC

After launch:

Questions:

  • Do we want to provide some guidance in terms of writing unit tests for grpc-kotlin apps (and write an example for the Hello World app)? Cf. grpc-java/examples/example-kotlin's Unit test examples

Answered:

  • On which platforms (Windows, Linux, Mac) can grpc-kotlin be used?
  • Router guide example:
    • Stick with proto Duration type, even if it isn't used in other examples?
    • Drop/cleanup Java specific option declarations?

Add a case-studies part on grpc.io

It would be a good idea to have a part of the website reserved for testimonies and case studies such as the one on Kubernetes: https://kubernetes.io/case-studies/

It could feature use-cases from:

  • Netflix
  • etcd
  • Kubernetes
  • Dropbox

With external links. At the moment, there is a "Used by" on the main page but not any link towards a use-case.

Get PR reviewed and merged

Hi there,
I am from PingCAP. Recently I just opened a PR #68 to add PingCAP use case to the gRPC website. But there seems to no furthering actions happening to this PR. Can someone review or let me know if I did this rightly? Thanks.

Add guide about interceptor

It would feature examples about how to use interceptors:

  • server side / unary interceptor
  • server side / streaming interceptor
  • client side / unary interceptor
  • client side / streaming interceptor

Syntax Error

pip3 install grpc --ignore-installed
Collecting grpc
Using cached https://files.pythonhosted.org/packages/dd/63/e25fa1e7dbbd44ae4d2d5ceb1bfef517849c854795e73d01bfd3d250a8b1/grpc-0.3-19.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-install-x8_v1sko/grpc/setup.py", line 7, in
version_tuple = import('grpc').VERSION
File "/tmp/pip-install-x8_v1sko/grpc/grpc/init.py", line 6, in
from .rpc import *
File "/tmp/pip-install-x8_v1sko/grpc/grpc/rpc.py", line 141
except OSError, ex:
^
SyntaxError: invalid syntax

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-x8_v1sko/grpc/

Improve Color Contrast

Historically, gRPC.io has had a poor color contrast.. we should fix it once and for all with the re-vamp. Ideally, optimize the site for accessibility..

Issue originally from @hsaliak .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.