Blog

Caching and Upstream Proxying For CRAN's R Packages

Mar 12 2024/3 min read
Cloudsmith now supports upstream proxying and caching for CRAN's R packages. That means simpler, more reliable integration of third-party packages into your organization's development process. Better software, faster!

At Cloudsmith, we recognize the importance of maintaining control and reliability over every aspect of your organization's software, including its dependencies. That's why we're thrilled to introduce support for CRAN upstream proxying and caching.

This means that your organization's developers can effortlessly upload R packages, while Cloudsmith handles the retrieval and caching of its dependencies. Let us reliably and securely be the single point of contact for all your packages.

What is R?

R is a powerful programming language and environment widely used for statistical computing and graphics.

What is CRAN?

CRAN, or Comprehensive R Archive Network, serves as the primary repository for R packages, providing a vast collection of resources for R users and developers.

The CRAN public repository hosts a vast collection of R packages contributed by developers worldwide, covering a wide range of domains such as statistics, machine learning, data visualization, bioinformatics, and more.

These packages are generally available in both source code and precompiled binary formats. Source packages contain the original R code, documentation, and any necessary dependencies, allowing installation on any platform by compiling them locally. Precompiled binaries may also exist for Windows and macOS platforms, making installation straightforward for users without the need for compilation. These binaries are optimized for their respective platforms, enhancing performance and ease of use. 

Cloudsmith CRAN upstreams

With Cloudsmith's CRAN upstream proxying, we act as your single point of contact for all R packages and dependencies. By proxying upstream dependencies located in CRAN, we simplify integration by consolidating access to packages through our platform.

This means your organization can ensure reliability and only have to deal with a central place, Cloudsmith, instead of managing multiple connections to external repositories.

When you add a CRAN upstream in Cloudsmith, we’ll do several things behind the scenes that’ll allow you to start pulling R packages (in both source or binary format) right away:

  • We’ll check what packages are available on the upstream
  • We do this for all source packages and binaries built for specific versions of R, platforms (macOS or Windows), and architectures (for macOS binaries only).

Once complete, this allows you to take advantage of two powerful features of Cloudsmith, Proxying and Caching. 

Proxying

  • When you attempt to pull an R package from Cloudsmith and it doesn’t exist within your repository, we’ll check if it exists on the upstream. If it does, we’ll transparently serve it. No more specifying multiple repositories within the R console when installing an R package. 
  • Even better, if you’ve got multiple CRAN repositories, add them as upstreams within Cloudsmith. Specify which repositories Cloudsmith should check, set the precedence or priority between them, and define actions in the event of an upstream failure. You’ll always be in control of your dependency management. 

Caching

If you’ve configured the upstream to cache any packages you’ve fetched, when you fetch a package it’ll be stored in your Cloudsmith repository. No more fetching from the wild. 

  • This gives you greater visibility and control about what packages are being fetched, access to package scanning and monitoring, and lightning-fast and reliable access to your most important dependencies. 

Benefits of CRAN Upstream Proxying and Caching

  • Faster builds: Lightning-fast delivery of dependencies from our cached repository no matter where you are in the world.
  • Reliable performance: Ensure consistent and reliable access to dependencies worldwide.
  • Visibility and Control: Having a secure central location for consuming all your organizations R packages and dependencies. One place to monitor, set policies and search increases visibility and control.
  • Simplified integration: Consolidate access to R packages through Cloudsmith. Your Cloudsmith repository is the only repository you need to configure.

How do I get started?

At Cloudsmith, we're committed to empowering developers with tools that make software development simpler, faster, and more secure. With CRAN upstream proxying and caching, we're taking another step toward achieving that goal.

Ready to streamline your organizations R package management with Cloudsmith's CRAN upstream support? Check out our upstream documentation to learn more or start a free trial

Let's build better software together, with Cloudsmith.

Get our next blog straight to your inbox