Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,18 @@ RustToolChain.jl is a Julia package that provides Rust toolchains (especially `c

- **Linux**: x86_64 (glibc, musl), aarch64 (glibc, musl), i686 (glibc, musl)
- **macOS**: x86_64, aarch64
- **Windows**: x86_64, aarch64
- **Windows**: x86_64

### Preparation (Windows users only)

Windows users need to run the following in an Administrator PowerShell to install the required build tools:

```ps
winget install -e --id Microsoft.VisualStudio.2022.BuildTools `
--accept-source-agreements `
--accept-package-agreements `
--override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"
```

## Installation

Expand Down Expand Up @@ -87,9 +98,12 @@ run(`$(cargo()) build --release`)

This package uses Julia's Artifacts system to automatically download and manage Rust toolchains on Unix-like platforms. On first use, the appropriate Rust toolchain for your platform will be automatically downloaded.

The `cargo()` and `rustc()` functions return commands that use the isolated Windows toolchain when no system `cargo` or `rustc` is available.

### Note for Windows Users

Windows uses a different installation path. Instead of installing the large Rust distribution tarball through Julia Artifacts, RustToolChain.jl downloads `rustup-init.exe` from `https://win.rustup.rs` and installs the Rust version recorded in `Artifacts.toml` with `rustup toolchain install --profile default`. The installation is isolated under this package's Julia scratchspace by setting package-local `RUSTUP_HOME` and `CARGO_HOME` directories. It does not modify the user's `PATH` or the user's existing Rust installation.

The `cargo()` and `rustc()` functions return commands that use the isolated Windows toolchain when no system `cargo` or `rustc` is available.

## Development

Expand Down