Skip to content

cargo

Installs Rust tools from crates.io using pre-compiled binaries via cargo-quickinstall or GitHub releases.

import { defineTool } from "@alexgorbatchev/dotfiles";
export default defineTool((install, ctx) =>
install("cargo", {
crateName: "ripgrep",
}).bin("rg"),
);
ParameterTypeRequiredDescription
crateNamestringYesName of the Rust crate
binarySource'cargo-quickinstall' | 'github-releases'NoBinary download source (default: cargo-quickinstall)
versionSource'cargo-toml' | 'crates-io' | 'github-releases'NoVersion detection source (default: cargo-toml)
githubRepostringNoGitHub repo in owner/repo format
assetPatternstringNoPattern for GitHub release assets
cargoTomlUrlstringNoCustom Cargo.toml URL
customBinariesstring[]NoCustom binary names if different from crate
envRecord<string, string> | (ctx) => Record<...>NoEnvironment variables (static or dynamic function)
PlaceholderDescription
{version}Resolved version
{platform}Current platform
{arch}Current architecture
{crateName}Crate name
export default defineTool((install, ctx) =>
install("cargo", {
crateName: "bat",
binarySource: "github-releases",
githubRepo: "sharkdp/bat",
assetPattern: "bat-v{version}-{arch}-{platform}.tar.gz",
}).bin("bat"),
);
export default defineTool((install, ctx) =>
install("cargo", {
crateName: "fd-find",
customBinaries: ["fd"],
}).bin("fd"),
);
export default defineTool((install, ctx) =>
install("cargo", {
crateName: "tool",
})
.bin("tool")
.hook("after-install", async (ctx) => {
// Post-installation setup
}),
);
SystemArchitectureRust Target Triple
macOSarm64aarch64-apple-darwin
macOSx64x86_64-apple-darwin
Linuxx64x86_64-unknown-linux-gnu
Linuxarm64aarch64-unknown-linux-gnu