The rpkgs.com project provides R package binaries for various Linux distributions and architectures. The project consists of multiple parts, each serving a different scope:
- rpkgs.com: primary entrypoint, overview of available repositories and their scope
- {bincraft}: R package to build and process R package binaries in S3
rpkgs-build-env
: Container images for building R package binaries with {bincraft}metadata-dashboard
: Shiny-based dashboard for visualizing package metadata from S3 R package repositories built with {bincraft}
The platform can host multiple repositories, with each repository mapped to its own subdomain. The CRAN repository serves as the main repository and is hosted at cran.rpkgs.com. While this project actively builds and serves binaries for CRAN packages, it operates independently and has no official affiliation with CRAN.
The project aims to build binaries for all CRAN packages, but various factors can cause builds to fail for specific package versions. The most common cause of build failures is missing exotic external system dependencies that packages require. The package binary dashboard shows global coverage information for each operating system and identifies currently missing packages.
Motivation & Background
Section titled “Motivation & Background”This project launched in 2024 with the goal of providing extensive CRAN package support for common Linux distributions, including Alpine Linux. Since CRAN does not build binaries for Linux systems, Posit started providing binaries in 2020. However, their efforts were initially limited to the amd64
architecture and excluded Alpine Linux, which is highly popular for container-based workflows. Additionally, their build chain uses proprietary methods and restricts binary usage to specific conditions. These limitations highlighted the need for a community-driven, transparent, and open-source alternative.
Several similar efforts exist alongside rpkgs.com
, including bspm, r2u, R-multiverse, and p3m. Each approach has a different scope, uses different backend services, and provides different package sets for specific architectures or distributions. Users should compare each approach to determine which best meets their needs.