Nix for Polyglot, Reproducible Data Science Workflows

Read full text
Authors: Bruno Rodrigues, Philipp Baumann
Cited by: 0

Abstract

Reproducible analysis requires more than clean, well-documented code; it demands the precise management of software dependencies, computational environments, and workflow execution. While researchers can combine tools like [Docker]{.pkg}, [renv]{.pkg} for [R]{.proglang} packages (or [uv]{.pkg} for [Python]{.proglang} packages) and [Make]{.pkg} to address these needs, the resulting toolchain is often complex and fragile, requiring the coordination of multiple disparate systems. This paper introduces a unified framework built on the [Nix]{.pkg} package manager, made accessible through two [R]{.proglang} packages. The first, [rix]{.pkg}, generates declarative [Nix]{.pkg} expressions to define version-pinned, reproducible environments that encompass [R]{.proglang}, [Python]{.proglang}, [Julia]{.proglang}, and system-level dependencies. The second, [rixpress]{.pkg} (and its [Python]{.proglang} port, [ryxpress]{.pkg}), leverages these environments to orchestrate polyglot pipelines where each computational step runs in a hermetically sealed, language-specific environment with automatic caching. By treating the entire computational environment as code, this integrated approach ensures a high degree of reproducibility, supports collaboration across heterogeneous systems, and helps guarantee that analyses remain executable long into the future.

Fields of Study & Subjects

Scientific Computing and Data Management Computational Physics and Python Applications Distributed and Parallel Computing Systems

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
3 January 2026
Document type
Preprint