Website - Youtube - About - Talks - Books - Software - RSS

Software

This page gathers the software I work on, from language-specific packages to larger tools and experiments.

Packages

R packages

rix: Reproducible Data Science environments with Nix

Simplifies the creation of reproducible data science environments using the ‘Nix’ package manager, as described in Dolstra (2006) <ISBN 90-393-4130-3>. The included ‘rix()’ function generates a complete description of the environment as a ‘default.nix’ file, which can then be built using ’Nix’. This results in project specific software environments with pinned versions of R, packages, linked system dependencies, and other tools. Additional helpers make it easy to run R code in ‘Nix’ software environments for testing and production.

rixpress: Build Reproducible Analytical Pipelines with Nix

Streamlines the creation of reproducible analytical pipelines using ‘default.nix’ expressions generated via the ‘rix’ package for reproducibility. Define derivations in ‘R’, ‘Python’ or ‘Julia’, chain them into a composition of pure functions and build the resulting pipeline using ‘Nix’ as the underlying end-to-end build tool. Functions to plot the pipeline as a directed acyclic graph are included, as well as functions to load and inspect intermediary results for interactive analysis. User experience heavily inspired by the ‘targets’ package.

chronicler: Add Logging to Functions

Decorate functions to make them return enhanced output. The enhanced output consists in an object of type ‘chronicle’ containing the result of the function applied to its arguments, as well as a log detailing when the function was run, what were its inputs, what were the errors (if the function failed to run) and other useful information. Tools to handle decorated functions are included, such as a forward pipe operator that makes chaining decorated functions possible.

Python packages

ryxpress

ryxpress is a Python reimplementation/port of the R package {rixpress}. It provides helpers and a small framework to build and work with reproducible, polyglot analytical pipelines that are built with Nix.

talvez

talvez is a lightweight Python implementation of a Maybe monad (Just / Nothing) inspired by the R package {maybe}.

cronista

cronista is a Python port of my R package {chronicler}.

Other software

T

T is an experimental, reproducibility-first language and orchestration engine for polyglot data science. It is built around immutable, composable pipelines and uses Nix to make environments, builds and execution reproducible across machines.

Korppi

Korppi is an offline-first text editor for asynchronous collaboration. It stores documents as a series of patches so changes from different collaborators can be imported, reviewed, accepted or rejected, making it a Git-free alternative for people used to track changes in word processors.