Dirk Eddelbuettel: #47: r2u at its Third Birthday
Welcome to post 47 in the $R^4 series!
r2u provides Ubuntu binaries for all CRAN packages for the R system. It started three years
ago, and offers for Linux users on Ubuntu what windows and macOS users
already experience: fast, easy and reliable installation of
binary packages. But by integrating with the system package
manager (which is something that cannot be done on those other operating
systems) we can fully and completely integrate it with underlying
system. External libraries are resolved as shared libraries and handled
by the system package manager. This offers fully automatic installation
both at the initial installation and all subsequent upgrades. R users just say, e.g.,
install.packages("sf") and spatial libraries
proj, gdal, geotiff (as well as
several others) are automatically installed as dependencies in the
correct versions. And they remain installed along with sf
as the system manager now knows of the dependency.
Work on r2u began as
a quick weekend experiment in March 2022, and by May 4 a first release
was marked in the NEWS file after a
few brave alpha testers kicked tires quite happily. This makes today the
third anniversary of that first release, and marks a good time to review
where we are. This short post does this, and stresses three aspects:
overall usage, current versions, and new developments.
Steadily
Growing Usage at 42 Million Packages Shipped
r2u ships from two
sites. Its main repository is at the University of Illinois campus
providing ample and heavily redundant bandwidth. We remain very grateful
for the sponsorship from Atlas. It also still ships from
my own server though that may be discontinued or could be spotty as it
is on retail fiber connectivity. As we have access to the both sets of
server logs, we can tabulate and chart usage. As of yesterday, total
downloads were north of 42 million with current weekly averages around
500 thousand. These are quite staggering numbers for what started as a
small hobby project, and are quite humbling.
Usage is driven by deployment in continuous integration (as for
example the Ubuntu-use at GitHub makes this both an easy and obvious
choice), cloud computing (as it is easy to spin up Ubuntu instances, it
is as easy to add r2u
via four simple commands or one short script), explorative use (for
example on Google Colab) or of course in general laptop, desktop, or
server settings.
Current Versions
Since r2u began, we
added two Ubuntu LTS releases,
three annual R releases as well
as multiple BioConductor
releases. BioConductor support is
on a best-efforts basis motivated primarily to support the CRAN packages having dependencies.
It has grown to around 500 packages and includes the top-250 by
usage.
Right now, current versions R
4.5.0 and BioConductor 3.21, both
released last month, are supported.
New Development: arm64
A recent change is the support of the arm64 platform. As discussed in
the introductory
post, it is a popular and increasingly common CPU choice seen
anywhere from the Raspberry Pi 5 and it Cortex CPU to in-house cloud
computing platforms (called, respectively, Graviton at AWS and Axiom at
GCS), general server use via Ampere CPUs, Cortex-based laptops that
start to appears and last but not least on the popular M1 to M4-based
macOS machines. (For macOS, one key appeal is in use of lighterweight
Docker use as these M1 to M4 cpus can run arm64-based containers without
a translation layer making it an attractive choice.)
This is currently supported only for the noble aka 24.04 release.
GitHub Actions, where we compile these packages, now also supports
jammy aka 22.04 but it may not be worth it to expand there as the
current latest release is available. We have not yet added BioConductor support but may do so.
Drop us a line (maybe via an issue) if this of
interest.
With the provision of arm64 binaries, we also started to make heavier
use of GitHub Actions. The BioConductor 3.21 release binaries
were also created there. This makes the provision more transparent as
well as the configuration repo
as well as the two builder repos (arm64, bioc) are
public, as is of course the main r2u repo.
Summing Up
This short post summarised the current state of r2u along with some recent
news. If you are curious, head over to the r2u site and try it, for
example in a rocker/r2u container.
New Development: arm64
A recent change is the support of the arm64 platform. As discussed in
the introductory
post, it is a popular and increasingly common CPU choice seen
anywhere from the Raspberry Pi 5 and it Cortex CPU to in-house cloud
computing platforms (called, respectively, Graviton at AWS and Axiom at
GCS), general server use via Ampere CPUs, Cortex-based laptops that
start to appears and last but not least on the popular M1 to M4-based
macOS machines. (For macOS, one key appeal is in use of lighterweight
Docker use as these M1 to M4 cpus can run arm64-based containers without
a translation layer making it an attractive choice.)
This is currently supported only for the noble aka 24.04 release.
GitHub Actions, where we compile these packages, now also supports
jammy aka 22.04 but it may not be worth it to expand there as the
current latest release is available. We have not yet added BioConductor support but may do so.
Drop us a line (maybe via an issue) if this of
interest.
With the provision of arm64 binaries, we also started to make heavier
use of GitHub Actions. The BioConductor 3.21 release binaries
were also created there. This makes the provision more transparent as
well as the configuration repo
as well as the two builder repos (arm64, bioc) are
public, as is of course the main r2u repo.
Summing Up
This short post summarised the current state of r2u along with some recent
news. If you are curious, head over to the r2u site and try it, for
example in a rocker/r2u container.
rocker/r2u container.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.
What is HMAC?
HMAC stands for Hash-Based Message Authentication Code. It s a specific way to use a cryptographic hash function (like SHA-1, SHA-256, etc.) along with a secret key to produce a unique fingerprint of some data. This fingerprint allows someone else with the same key to verify that the data hasn t been tampered with.
How HMAC Works
Keyed Hashing: The core idea is to incorporate the secret key into the hashing process. This is done in a specific way to prevent clever attacks that might try to bypass the security.

So, what is this Storm thing? Filip promptly informed me that
Progvis is not just a pedagogical tool Or rather, that it is part
of something bigger. Progvis is a program built using 



Here s a short preview of our latest accepted paper (to appear at
Sometimes one stumbles upon artists by accident and immediately falls in love with them. A link to a video from
I use