Initial public release
Pre-releaseThe 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.