-
Notifications
You must be signed in to change notification settings - Fork 7
grpc
gRPC is a description format and library for services built on top of Protobuf. I wrote an R wrapper to the core C library in 2017, but it is lacking several key features:
- Authentication - be able to provide / accept authentication tokens
- Security - use TLS to encrypt messages
- Streaming - reuse an existing connection for multiple requests
Let me know what you think.
http://github.com/nfultz/grpc is a basic implementation.
https://github.com/eddelbuettel/rprotobuf - Protobuf for R
https://github.com/grpc/grpc - underlying C library
The student will add and extend the functionality in the grpc package from both R and the underlying C wrapper code.
There are two main code paths in the grpc system - grpc clients / senders and grpc servers / receivers. The student will add features to each.
Security - gRPC can use TLS to encrypt the messages sent. This needs to be configured when a new connection is created.
Authentication - grpc also supports creating and sending authentication tokens (such as Oauth2 tokens) as metadata attached to each message.
Streaming - support sending multiple messages over a single connection.
Allows R to interoperate with other gRPC projects. Apache Arrow is one, as are many Google ML products.
gRPC is also used pretty widely in industry.
-
EVALUATING MENTOR: Neal Fultz [email protected] is the author of R packages
grpc
andstackoverflow
. He is the data science lead at UCLA Social Science Computing and the principal of NJNM consulting, and coorganizer of the Los Angeles R User Group from 2010-2014. -
SECOND MENTOR - Gergely Daroczi [email protected] is the author of
Rapporter
and theAWR
packages. He is a Director of Data Science at System1, and the organizer of the Budapest R User Group.
Students, please do one or more of the following tests before contacting the mentors above.
MENTORS: write several tests that potential students can do to demonstrate their capabilities for this particular project. Ask some hard questions that will give you insight about how the students write code to solve problems. You'll see that the harder the questions that you ask, the easier it will be for you to choose between the students that apply for your project! Please modify the suggestions below to make them specific for your project.
-
Easy: something that any useR should be able to do, e.g. download some existing package listed in the Related Work, and run it on some example data.
-
Medium: something a bit more complicated. You can encourage students to write a script or some functions that show their R coding abilities.
-
Hard: Write an Rcpp function which takes an integer,
n
, and an R function,callback
. The Rcpp function should drawn
samples from the normal distribution, and execute the call back function on each sample that is greater than zero.
Students, please post a link to your test results here.
- EXAMPLE STUDENT 1 NAME, LINK TO GITHUB PROFILE, LINK TO TEST RESULTS.