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.
Linux / macOS:
curl -sSL https://raw.githubusercontent.com/joshuamarie/carrier/refs/heads/main/scripts/install.sh | bash- 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 | bashpowershell -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 --versionThe {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.