Installation

{carrier} ships as a native binary. There is no R package to install for the CLI itself, only for the {box} fork it depends on at runtime (see below).

Pre-built binaries

Pre-built binaries for Linux, macOS, and Windows are published on the Releases page.

  1. Linux / macOS:

    curl -sSL https://raw.githubusercontent.com/joshuamarie/carrier/refs/heads/main/scripts/install.sh | bash
    1. Windows:
    powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/joshuamarie/carrier/refs/heads/main/scripts/install.ps1 | iex"

To pin a specific version, use that version’s asset URL instead of the latest one the scripts above resolve to:

curl -LsSf https://github.com/joshuamarie/carrier/releases/download/v0.1.0/carrier-installer.sh | bash
powershell -ExecutionPolicy Bypass -c "irm https://github.com/joshuamarie/carrier/releases/download/v0.1.0/carrier-installer.ps1 | iex"

Building from source

{carrier} is a CLI tool built in Rust, so it requires the stable Rust toolchain (rustc, cargo). Once you managed to add the Rust toolchain, install {carrier} from scratch via following command:

cargo install --git https://github.com/joshuamarie/carrier

{carrier}’s GitHub-install path (carrier install gh:user/repo) is compiled behind the network feature on carrier-core. If you’re building from source and plan to install modules directly from GitHub, confirm that feature is enabled for the binary you build, otherwise carrier install gh:... will fail with an explicit “requires the ‘network’ feature” error rather than silently doing nothing.

Verifying the install

carrier --version

The {box} fork

You are working with {box} modules, and {carrier} is the “package manufacturer”, so it requires {box} R package. {carrier}-installed modules are resolved through {box}, although the syntax and path-resolution patches that make box::use() aware of carrier’s install location aren’t in upstream {box} yet. Until they land, install the patched fork:

# install.packages('pak')
pak::pak("joshuamarie/box@feature/carrier-module-support")

What’s more?

Next: Get Started walks through initializing, bundling, and installing a module end to end.