repeatr

Repeatr: Run it. Run it again.

Repeatr is a tool for sandboxing processes so they become guaranteed runable on another machine (at another time, at another place -- even offline). Repeatr is designed to make task definition precise, environment setup portable, and results reproducible.

Repeatr is like git for the rest of your environment. Push and pull filesystems, complete tool chains, and total dependencies -- all decentralized. Fast, resilient, and easy to get started with.

Containers are just the beginning.

Containers are all the rage: and for good reason! With containers, quick set up of clean-room environments has become easy -- useful for detangling any complex process. Repeatr takes containers further: an isolated workspace is a critical first step, but only as good as your control over what goes into that clean new workspace! Repeatr takes the implicit, and makes it explicit: every container run with Repeatr can explicitly declare which files it wants to output, and has similarly enumerated inputs. With this clarity, you can compose higher-level workflows that are fast, clean, and accumulate no cruft.

Repeatr's inputs and outputs compose your way.

Repeatr pipelines allow you to explicitly manage and isolate steps in your build or analytics pipeline.

Specifying multiple input filesystems, and what path they belong in, means you can compose several steps into one -- a huge time saver when you have some steps in your pipeline which are slow, unrelated, and need to be run rarely. Specifying sections of the filesystem to use at outputs of your process means you can minimize the amount of data that needs to be pushed to subsequent steps, making your pipeline as a whole faster and easier to update.

Repeatr will take your data anywhere.

Repeatr sees snippets of filesytems -- called Wares -- as content-addressible. This means that the primary way a Ware is identified is by a cryptographic hash. Storing a bundle of Wares -- we call this a Warehouse -- can be hosted anywhere. No trust in the storage service required; nor any complex software. Repeatr can be pointed at a simple local directory, and NFS mount, an S3 bucket, and more; no external coordination required.

Repeatr even operates offline! No central hub; no network needed. You don't even need to run another daemon on localhost. Repeatr Warehouses are organized exactly the same no matter what the backing is, so mirroring is simple, obvious, and reliable. Mirror to a jumpdrive for working on a plane, or off-grid services.

Start repeating!

The Examples should give a good impression of what it's like to use Repeatr. Install Repeatr and dive in!