Some Rust dependencies (like ring, a cryptography library) require LLVM/Clang to build on ARM64 Windows. This is because they contain assembly code or use build tools that depend on Clang.
# Install LLVM using Windows Package Manager
winget install LLVM.LLVMAfter installation:
- Restart your terminal
- Verify installation:
clang --version
-
Download LLVM from: https://github.com/llvm/llvm-project/releases
-
Get the latest ARM64 Windows installer (e.g.,
LLVM-<version>-win-arm64.exe) -
Run the installer
-
Important: During installation, check "Add LLVM to the system PATH"
-
Restart your terminal
-
Verify:
clang --version
# Install using Chocolatey (if you have it installed)
choco install llvmAfter installing LLVM, verify that clang is available:
Get-Command clang
clang --versionYou should see output like:
clang version 18.1.8
Target: aarch64-pc-windows-msvc
...
Once LLVM is installed and clang is in your PATH:
# Restart PowerShell first!
.\scripts\build-windows.ps1- Restart your terminal completely (close and reopen PowerShell)
- Check if LLVM is in PATH:
$env:PATH -split ';' | Where-Object { $_ -like '*LLVM*' }
- Manually add to PATH if needed:
# Typical installation path $env:PATH += ";C:\Program Files\LLVM\bin"
Make sure you installed the ARM64 version of LLVM, not x64. Check:
clang --version
# Should show: Target: aarch64-pc-windows-msvcIf you don't want to install LLVM, you can modify the project to use aws-lc-rs instead of ring:
- In
Cargo.toml, find dependencies that userustls(likereqwest) - Add feature flags to use
aws-lc-rs:[dependencies] reqwest = { version = "...", features = ["rustls-tls-aws-lc-rs"], default-features = false }
This is more involved and requires code changes, so installing LLVM is simpler.
For ARM64 Windows development with Rust:
- Visual Studio Build Tools (MSVC) → Required for linking
- LLVM/Clang → Required for some dependencies with assembly/native code
Both are free and standard tools for native development on Windows.