BT

gRPC 1.0 is Ready for Production

| by Abel Avram Follow 9 Followers on Aug 24, 2016. Estimated reading time: 1 minute |

Google has released gRPC 1.0, considering it stable and ready for production.

gRPC started as an internal Google project called Stubby, used for communication by some of their internal services. Google open sourced the framework 18 months ago with the hope that others will embrace it and use it when consuming services from Google, communicating with other services across the internet or for internal products.

gRPC is a platform-neutral RPC system that uses the Protocol Buffers IDL to define end-point services and message payloads to be transferred, then generating stubs for multiple languages. gRPC supports 10 languages - C, C++, C#, Go, Java (including Java/Android), Node.js, Objective-C, PHP, Python, and Ruby – on Linux, Mac and Windows. There are native implementations in C, Go and Java, and wrappers around the C library for the other languages. A performance dashboard was set up by Google to show the latency of various gRPC communications between two VM instances in the same datacenter. For unary synchronous secure messages, the chart shows the base Netperf results at about 100 us, while C++, Java and C# implementations are at about 200-300 us, and Ruby, Python and Node.js are at 700, 900 and respectively 1.100 us.

Messages to be transferred are serialized in a binary format using Protocol Buffers 3.0 which is meant to provide better performance than text formats. Compared to JSON, ProtoBuf can cut the size of a message in half and use a third of the time to serialize/deserialize it, according to Kelsey Hightower, a Google engineer.

Beside unary RPCs which consist of one request followed by one response, gRPC makes use of HTTP/2 to provide uni or bi-directional streaming between client and server. Communication can be synchronous or asynchronous and supports authentication via SSL/TLS or OAuth2 (with Google APIs).

The installation process has been simplified by providing gRPC binaries via CocoaPods, gem, Gradle, Maven, npm, NuGet, pecl, pip, or Docker images.

A number of companies, including Cisco, CoreOS, Juniper, Netflix and Square, are using gRPC internally, according to Google.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Dart language is not supported? by Andrew Mezoni

The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#)
Google does not provide support of the Dart language?
I thought it had to be done first.
Or Dart language implemented not by the Google?

Re: Dart language is not supported? by Andrew Reed

gRPC is more for communicating between servers than communicating between a browser and a server, but there is an issue open in the Dart repo to support gRPC.

Re: Dart language is not supported? by Andrew Mezoni

Do you means that Dart is suitable only for communicating between a browser and a server?

I always thought that Dart VM designed for developing scripts and server apps.
Information from here: www.dartlang.org/dart-vm

This information does not restrict to use Dart for communicating between servers.

Can you explain, for the uninitiated, where you found that Dart purpose is only "communicating between a browser and a server" and in any case it is not for "communicating between servers"?


P.S.

Issues of such kind Dart has a lot only because Google never provide support for Dart in any significant project such as this subject.

Protocol buffers just like the old days by Neil Murphy

This is just an over-engineered rehash of the old mainframe file systems with a fancier name. They will be reinventing COBOL next

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

4 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT