Diversifying the R Ecosystem - New Approaches for Package Binaries & Publishing

Dr. Patrick Schratz

About Me

Patrick Schratz

Ph.D. Applied Machine Learning (2022), FSU Jena
Zurich/Bern, Switzerland


DevOps Lead @ cynkra (2020–2024)
Founder of devXY (2024)
CTO of ricochet (2025)
CodeFloe Initiator (2025)

Today’s topics

rpkgs.com

  • Linux binary packages
  • Public build process
  • Powered by {bincraft}
  • R Consortium funded

ricochet (ricochet.rs)

  • Universal DS Deployment App
  • Alternative to Posit Connect, ShinyProxy, Faucet
  • Homelab & Enterprise scope

Part 1: rpkgs.com

rpkgs.com - The Problem

  • 2024: No distro-agnostic FOSS build process for Linux binary packages
  • R Universe: Ubuntu only (and for long time amd64 only)
  • r2u: Ubuntu only (& wrong concept: island solution, no multi-version)
  • bspm: System-package manager (& wrong concept: island solution, no multi-version
  • Posit Package Manager: proprietary, license restrictions, no arm64, no Alpine at this time

→ R needs a universal & unrestricted source for Linux binary packages for more distributions than Ubuntu (amd64)

rpkgs.com - The Solution

R needs a sovereign, community-powered build chain:

  • Usable everywhere without restrictions
  • All common1 Linux distributions for Data Science
  • Both amd64 AND arm64 architectures
  • Open build process

→ rpkgs.com

rpkgs.com - Supported Platforms

Distribution Versions Arch
Ubuntu 2 (last two LTS) amd64, arm64
RHEL / Alma / Rocky 3 (last three majors) amd64, arm64
Alpine (MUSL!) 3 (last three releases) amd64, arm64

→ 3 distros (8 versions) × 2 arch = 16 build targets per R version

rpkgs.com - By the Numbers (2026-01)

2.5+ TB Total Size

1.9M Binary Packages

16 Build Targets

rpkgs.com - Alpine R Container Images

  • Alpine is the OS for CICD
  • CI commonly uses containers
  • Multiple version combinations needed

devxygmbh/r-alpine

  • Rebuilt weekly
  • R: 4.1 – 4.5
  • Alpine: 3.21 – 3.23

→ Preconfigured with cran.rpkgs.com

docker run --rm -it devxygmbh/r-alpine:4-3.23 R -q -e 'getOption("repos")'
> getOption("repos")
                                           CRAN
"https://cran.rpkgs.com/arm64/alpine323/latest"

rpkgs.com - Infrastructure

Build Servers 1 (Geekbench 6)

Machine Arch SC MC
Hetzner AX42 (16c, 64GB) amd64 2849 13063
Mac Mini M4 (10c, 32G) arm64 3714 20708
Lenovo T14 gen6 (6c, 16GB) amd64 2657 8757

Distribution

  • CDN via Bunny — 10$/TB traffic (1/9 of AWS)
  • Universal repo with auto-detection: cran.rpkgs.com

rpkgs.com - Challenges

Technical

  • Alpine: C++ R packages often fail because of MUSL
  • Exotic system dependencies
  • Some packages need manual fixes

External Dependencies

R Consortium funded project — but the project still needs people to run it! Help welcome!

rpkgs.com - Challenges (Alpine)

rpkgs.com - Demo

rpkgs.com - Get Involved!

Start Using It

options(repos = 
  c(CRAN = "https://cran.rpkgs.com"
))

*… and read the docs before using the universal URL :)

Help Out

  • Spread the word
  • Report build failures to package maintainers
  • Contribute fixes for Alpine/MUSL
  • Donations help to cover infrastructure costs

Docs: docs.rpkgs.com

Part 2: ricochet

ricochet - The “Problem”

Hypothesis: No “cool” and “affordable” DS deployment platform exists.

App Owner Issue
Posit Connect Posit 20k–70k/year, no free/homelab tier
ShinyProxy OpenAnalytics Free but tedious config, limited RBAC, Java
faucet ixpantia No shared cache, no UI, prebuilt images, no RBAC
Shiny Server Open Source Posit Barely maintained, very basic, no RBAC

→ Need: App for homelab + enterprise, “fair” enterprise pricing, dependency cache, R/Python/Julia, RBAC

ricochet - The Team

Josiah Parry

Spatial Data Scientist @ ESRI
JosiahParry
R Consortium ISC Vice Chair

Patrick Schratz

Founder @ devXY
pat-s

ricochet - Our Vision & Values

Data scientists are developers

  • CLI-first deployment
  • Git-based workflows
  • API-invokable tasks (scripts), language-agnostic

Homelab to Enterprise

  • Powerful core functionality for homelab
  • Mac and Windows compatible (Server & CLI)

Built for an evolving ecosystem

  • Shiny, Plumber, Ambiorix, …
  • If it speaks HTTP → deploy it

Your infra, your choice

  • Host, Docker, or Kubernetes
  • Julia, Python, R etc.

ricochet - Core Concepts

Architecture

  • Written in Rust
  • Self-hostable
  • Cross-platform CLI
  • Multiple backends:
    libcontainer (Host), Docker, K8s
  • Prodution-ready Execution Environments

App Features

  • UI with RBAC controls
  • Private/public apps
  • Scaling control
  • Shared dependency cache
  • Static site deployments
  • Scheduled tasks

ricochet - Current State

Timeline

  • First “prod” release: ~ Q1/Q2 2026
  • Currently in beta

Source Code

github.com/ricochet-rs

docs - helm - cli

Try it now

try.ricochet.rs
Full feature playground

ricochet - Homelab vs Enterprise [draft!]

Homelab Enterprise
Apps/Task Unlimited Unlimited
Scaling 0/1 Unlimited
High-Availability
External Secrets
Whitelabel
Users 1-2 max Unlimited
Groups
Privacy Public Private/Internal/Public
Git Deployments Limited Full
Audit Log

…and more — transparent feature matrix & pricing page in the works!

ricochet - What Sets Us Apart (Enterprise)

Self-service pricing (no “sales” calls, flexible adjustments)

Unrestricted number of users - always

Unlimited public app consumptions

Main pricing based on number of apps (in blocks)

One license for any backend (incl. Kubernetes)

Community and open discussion forum

Part 3: ricochet deployment demo

Slides