Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch from RCurl to curl #325

Closed
jmcphers opened this issue Dec 10, 2018 · 6 comments · Fixed by #348
Closed

Switch from RCurl to curl #325

jmcphers opened this issue Dec 10, 2018 · 6 comments · Fixed by #348

Comments

@jmcphers
Copy link
Member

rsconnect currently uses the RCurl package most of the time to perform HTTP operations.

https://cran.r-project.org/web/packages/RCurl/index.html

We should consider switching to curl, which is what most of the tidyverse uses.

https://cran.r-project.org/web/packages/curl/index.html

@jeroen
Copy link
Contributor

jeroen commented Mar 12, 2019

This is quite important. The RCurl package is unmaintained and on Windows it uses a very very old version of openssl which only supports legacy versions of TLS (https).

For this reason Windows users are unable to connect with servers that use the latest HTTPS standards. Replacing RCurl with the curl (or httr) package will resolve your Windows HTTPS problems and probably fix many other random networking issues as well.

@jmcphers
Copy link
Member Author

I've started working on this on a branch.

@jjallaire
Copy link
Member

jjallaire commented Mar 12, 2019 via email

@jmcphers
Copy link
Member Author

In recent versions of rsconnect, RCurl is no longer the default on Windows because of the issues @jeroen mentions above. We currently default to the curl command line utility on Windows instead (Windows 10 ships a competent one).

ae203f8#diff-031bbb2044688f5cb946c89f3a3dbd15

Consequently I was planning on dropping RCurl entirely -- we'd still have the rcurl transport, but it would mean "the curl R package" rather than "the RCurl package". Anyone opposed?

@jjallaire
Copy link
Member

jjallaire commented Mar 13, 2019 via email

@jeroen
Copy link
Contributor

jeroen commented Mar 13, 2019

Be careful that shelling out is often unreliable. For example if there is some networking error (which is not unusual), the curl command line returns non-zero and may print something to the terminal, but the exception does not get propagated back to R. This makes it difficult for the user to understand or debug what is the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants