Skip to content

Initial public release

Pre-release
Pre-release
Compare
Choose a tag to compare
@a11r a11r released this 26 Feb 01:01

The following languages in this repository are alpha-ready, and also at version 0.5.0

  • c-core
  • cpp
  • ruby
  • node

The following languages are not yet ready for alpha testing and the corresponding version numbers are lower:

  • python - 0.4.0
  • php - 0.3.0
  • csharp - 0.1.0
  • objective-c - 0.1.0

Additional details:

C (core)

In this version:
Client and server side implementations:

  • OpenSSL integration
  • chttp2 HTTP/2 and HPACK implementation
  • gpr runtime
  • gRPC generic implementation
  • Unary and streaming RPCs
  • Metadata support
    Client side Credentials implementations
  • GCE
  • Service Account
  • GoogleDefault
    Server-side only features
  • SSLCredentials support

OS support

  • Linux: fully functional (native development)
  • MacOS: functional, albeit missing some optimizations (kqueue)
  • Windows: semi-functional, pre-alpha status.

C++

  • C++ wrapping of the c-core functionality
  • Type-safe synchronous and Async interfaces
  • proto3 integration

Ruby

Exposes client and server features provided by the C-core via an extension
Client

  • Supports unary and streaming RPCs to gRPC servers
  • Synchronous stub surface
  • Supports secure and insecure connections
  • Integrates with Google authorization libraries providing
    • GCE
    • Service Account
    • GoogleDefault
  • Allows metadata be attached to requests, enabling alternate authorization

Server

  • Multithreaded RPC server, that supports both secure and insecure connections
  • Handles unary and streaming RPCs from gRPC clients
    Data serialization
  • default codegen is done via a proto3 plugin shipped with the release
  • default codegen creates clients/servers that serialize using proto3 ruby
  • other serialization schemes possible by changing the code generator

Node

Exposes client and server features provided by the C-core via an extension
Client

  • Supports unary and streaming RPCs to gRPC servers
  • Supports secure and insecure connections
  • Integrates with Google authorization libraries providing
    • GCE
    • Service Account
    • GoogleDefault
  • Allows metadata be attached to requests, enabling alternate authorization

Server

  • Handles unary and streaming RPCs from gRPC clients
  • exposes the underlying C server via the Node.js event loop
    proto2 integration (with streaming methods) using ProtoBuf.js

Python

Exposes client and server features provided by the C-core via a paired extension and library

  • Supports unary-unary, unary-streaming, streaming-unary, and streaming-streaming RPCs
  • Supports both synchronous and asynchronous RPC invocation
  • Supports insecure and secure servers
  • Supports insecure stubs

PHP

Initial, slightly out of date wrapping of c-core functionality
Synchronous interface
proto2 integration (with streaming methods)

C#

Experimental version with early API draft and an implementation prototype that’s passing some simple tests. Not intended for use yet.

Objective-C

Objective-C wrapper over the C-core library, not intended for use yet.

Current work in progress:

  • Integration of the C-core library with Cocoapods.
  • Protoc-generated layer.

Immediate roadmap:

  • Unit testing and E2E continuous integration testing.