← 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 triplearchvendorosTypical use
x86_64-unknown-linux-gnux86_64unknownlinux + gnuLinux desktop / server
x86_64-pc-windows-msvcx86_64pcwindows + msvcWindows
x86_64-apple-darwinx86_64appledarwinIntel Mac
aarch64-apple-darwinaarch64appledarwinApple Silicon Mac
wasm32-unknown-unknownwasm32unknownunknownBrowser WASM (no OS)
wasm32-wasiwasm32unknownwasiWASM with WASI (file I/O, clock)
aarch64-linux-androidaarch64unknownandroid + linuxAndroid (64-bit)
aarch64-unknown-none-softfloataarch64unknownnoneBare-metal embedded (no FPU)
🔍 Key patterns
  • unknown as vendor means the architecture isn't tied to a specific manufacturer — it's the default for most open platforms.
  • none as OS means no operating system at all — the code runs directly on hardware (embedded / kernel work).
  • wasi as 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, darwin are 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