# 📦 Installation

## Nix

This repository is a flake, and can be installed using nix profile:

    nix profile install "github:rossmacarthur/sheldon"

## Homebrew

Sheldon can be installed using Homebrew.

    brew install sheldon

## Cargo

Sheldon can be installed from Crates.io using Cargo, the Rust package manager.

    cargo install sheldon

In some circumstances this can fail due to the fact that Cargo does not use `Cargo.lock` file by default. You can force Cargo to use it using the `--locked` option.

    cargo install sheldon --locked

## Cargo BInstall

Sheldon can be installed using `cargo-binstall`, which will download the release artifacts directly from the GitHub release.

    cargo binstall sheldon

## Pre-built binaries

Pre-built binaries for Linux (x86-64, aarch64, armv7) and macOS (x86-64) are provided. These can be downloaded directly from the the releases page.

Alternatively, the following script can be used to automatically detect your host system, download the required artifact, and extract the `sheldon` binary to the given directory.

    curl --proto '=https' -fLsS https://rossmacarthur.github.io/install/crate.sh \
        | bash -s -- --repo rossmacarthur/sheldon --to ~/.local/bin

## Building from source

Sheldon is written in Rust, so to install it from source you will first need to install Rust and Cargo using rustup. Then you can run the following to build Sheldon.

    git clone https://github.com/rossmacarthur/sheldon.git
    cd sheldon
    cargo build --release

The binary will be found at `target/release/sheldon`.