Open daroczig opened 7 years ago
Would love to discuss. I think there are trade-offs here - basically RJava is perpetual pain versus having to basically build a native R SDK - and I can imagine there's room for both, especially if they are designed to work well (e.g., as drop-in replacements for one another).
Just chipping in - would love to collaborate on this, although I'm with Thomas on the tradeoffs. Generally my preferences would go:
So we might want to look at the C++ SDK, since Rcpp is much more common and less likely to shit the bed than RJava, or (yep) an R SDK (although I imagine that'd either be massive or an entire ecosystem of packages)
Thank you both! I agree rJava
can be painful, but it has its advantages, eg
Anyway, looking forward to collaborate on this! Eg a reimplementation of the AWR.KMS
package using the C++ SDK would be I think a very useful resource as a minimal example on how to use Rcpp
VS rJava
, although probably there are some other tutorials already out there.
Reiterating what has already been said, a C++ solution is definitely preferred to a Java one in a vacuum.
I could be misreading the documentation for the C++ SDK, but it seems it needs to be compiled with either Visual Studio (not kosher with Rcpp), or cmake. It appears that with some work you can compile code in an R package using cmake: https://github.com/forexample/r-cmake
But I doubt the cmake route would ever fly on CRAN. Regardless I think it is worth exploring.
Thanks for the updates, @carlganz, and I'm looking forward to any help/collaboration on this. Although the rJava version is already on CRAN and we have to stick with the jars for some purposes (eg the Kinesis MultiLangDaemon), but I'd be very happy to see a viable C++ approach. We will also have to keep in mind that there's a 5Mb cap on CRAN packages, for which there's a workaround in place for the rJava approach (downloading jars at installation time), we will have to figure out how to do that in the Rcpp way, although I'm pretty sure there are well established strategies to resolve that problem.
Weeeelll sorrta, the well-established strategies uniformly make my internal security pedant wail and gnash teeth, but they do exist, yeah.
I'm still very interested in this project, so not closing the ticket, but I'm having a bit more love for #13 right now
How would/can you test different AWS services, e.g. EC2 - because I might imagine you need some money to spend ...(update & note to self:amazon free trial!!!)
Now that all AWS Java SDK jar files are on CRAN, we could relatively easily build wrapper R packages to interact with different Amazon Web Services.
Example implementation: AWS Key Management Service
It would be nice to discuss eg with @leeper if using the Java SDK provides faster development and hopefully less maintenance than interacting with the REST API, especially if we are not only building on the SDK, but using specific Java clients as well, like in the R Kinesis client.