What is gRPC?
gRPC is a Google open-source project which provides efficient language-agnostic communication. It utilizes two key technologies: protocol buffers to provide efficient serialization for transmission, and http/2 for asynchronous communication. The result is highly efficient communication that enables off-platform applications to interact with ONOS with minimal cost.
Links:
Protocol Buffer guide (NOTE: we will be using proto3)
http/2 guide (RFC) (NOTE: only a basic understanding of http/2 is required to work on this)
Design Document (Currently draft)
Weekly meeting:
Weekly meeting time is Tuesday from 10am to 11am Korea Standard Time (Monday 6pm - 7pm Pacific Standard Time).
Mailing list
Join the brigade for discussions on the gRPC mailing list at: https://groups.google.com/a/onosproject.org/forum/#!forum/brigade-grpc
Why gRPC?
gRPC will enable more ONOS apps to be moved off-platform consuming fewer system resources and providing a degree of isolation to reduce the chances of a fault in an application effecting the system as a whole.
Brigade Leads:
Active Brigade Members:
Inactive Brigade Members:
Brigade Status:
Some service implemented, many models implemented.
Brigade Members:
We are seeking a group of 3 or 4 members.
Contact the brigade:
We have a google group which can be found here.
We also have a slack channel within ONOS slack.
Scope:
Short Term:
- Support gRPC as a northbound interface.
- Create handcrafted message types to provide access to system services (similar to the current REST API's but with improved performance via HTTP/2 multiplexing and improved encoding efficiency).
- Create thorough test suites.
Long Term:
- Create language packs for other languages to enable use of more complicated models (i.e. topology)
- Add support for automatic code generation from ONOS service API's.
- Explore the possibility of enabling gRPC for East/West communication.
How to get involved:
Contact Jian at jian@opennetworking.org (please include "gRPC" in the subject).