← All Workshops
MudEngine Part 1: Requirements
Step 7 / 19
Other target triples — how Rust identifies platforms
Rust uses the same arch-vendor-os triple scheme for every platform. Here are the most common ones you'll encounter:
🖥️ Common target triples
| Target triple | arch | vendor | os | Typical use |
|---|---|---|---|---|
x86_64-unknown-linux-gnu | x86_64 | unknown | linux + gnu | Linux desktop / server |
x86_64-pc-windows-msvc | x86_64 | pc | windows + msvc | Windows |
x86_64-apple-darwin | x86_64 | apple | darwin | Intel Mac |
aarch64-apple-darwin | aarch64 | apple | darwin | Apple Silicon Mac |
wasm32-unknown-unknown | wasm32 | unknown | unknown | Browser WASM (no OS) |
wasm32-wasi | wasm32 | unknown | wasi | WASM with WASI (file I/O, clock) |
aarch64-linux-android | aarch64 | unknown | android + linux | Android (64-bit) |
aarch64-unknown-none-softfloat | aarch64 | unknown | none | Bare-metal embedded (no FPU) |
🔍 Key patterns
unknownas vendor means the architecture isn't tied to a specific manufacturer — it's the default for most open platforms.noneas OS means no operating system at all — the code runs directly on hardware (embedded / kernel work).wasias OS is a thin standard layer that provides POSIX-like syscalls (files, clocks, randomness) on top of WASM — useful for server-side WASM and CLI tools.gnu,msvc,darwinare libc / environment variants. They matter because the same OS can use different runtime libraries.
Switching between targets is a single rustup target add <triple> command — the same Rust code compiles to any of them (with cfg attributes for platform-specific sections).
Step 7 / 19