RustInQemu: Difference between revisions

From QEMU
(Created page with "Notes about possibilities for including Rust code in the Qemu project. Started after discussion at the [https://etherpad.opendev.org/p/KVMForum2021-QEMU+Rust-BoF Rust in Qemu...")
 
No edit summary
Line 1: Line 1:
Notes about possibilities for including Rust code in the Qemu project.  Started after discussion at the [https://etherpad.opendev.org/p/KVMForum2021-QEMU+Rust-BoF Rust in Qemu BoF] at KVM Forum 2021.
Notes about possibilities for including Rust code in the Qemu project.  Started after discussion at the [https://etherpad.opendev.org/p/KVMForum2021-QEMU+Rust-BoF Rust in Qemu BoF] at KVM Forum 2021.


== Rust vs. Qemu platform support ==
== Rust target support for Qemu host platforms ==


Information sources:
* Qemu supported platforms matrix from [https://qemu-project.gitlab.io/qemu/about/build-platforms.html here]
* Information on support qemu host platforms comes from [https://qemu-project.gitlab.io/qemu/about/build-platforms.html here]
* Rust target support tiers from [https://doc.rust-lang.org/nightly/rustc/platform-support.html here]
* Information on supported Rust targets comes from [https://doc.rust-lang.org/nightly/rustc/platform-support.html here]


=== Rust target support for Qemu host platforms ===
{| class="wikitable"
|+ Legend
|-
! style="color:white;background-color:green" | Tier1*
| Rust [https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-1-with-host-tools Tier 1 with Host Tools] supported target.
|-
! style="background-color:lightgreen" | Tier2*
| Rust [https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-2-with-host-tools Tier 2 with Host Tools] supported target
|-
! style="background-color:yellow" | Tier3*
| Rust [https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-3 Tier 3] target, ''with full standard library, and host tool build support''
|-
! style="background-color:orange" | Tier2
| Rust [https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-2 Tier 2] target ''without'' host tools, but with full standard library.
|}


Analysis of whether Rust can generate code for the various host platforms which Qemu supports.
 
{| class="wikitable" style="text-align:center"
|-
| xxx
! Linux
! macOS
! Windows
! FreeBSD
! NetBSD
! OpenBSD
|-
! armv7
|-
! aarch64
|-
! MIPS
|-
! PPC (32-bit)
|-
! PPC (64-bit)
|-
! RISC-V
|-
! s390x
|-
! SPARC
|-
! x86 (32-bit)
| style="color:white;background-color:green" | Tier1*
|
| style="color:white;background-color:green" | Tier1*
| style="background-color:orange" | Tier2
| style="background-color:yellow" | Tier3*
| style="background-color:yellow" | Tier3*
|-
! x86 (64-bit)
| style="color:white;background-color:green" | Tier1*
| style="color:white;background-color:green" | Tier1*
| style="color:white;background-color:green" | Tier1*
| style="background-color:lightgreen" | Tier2*
| style="background-color:lightgreen" | Tier2*
| style="background-color:yellow" | Tier3*
|}

Revision as of 05:30, 17 September 2021

Notes about possibilities for including Rust code in the Qemu project. Started after discussion at the Rust in Qemu BoF at KVM Forum 2021.

Rust target support for Qemu host platforms

  • Qemu supported platforms matrix from here
  • Rust target support tiers from here
Legend
Tier1* Rust Tier 1 with Host Tools supported target.
Tier2* Rust Tier 2 with Host Tools supported target
Tier3* Rust Tier 3 target, with full standard library, and host tool build support
Tier2 Rust Tier 2 target without host tools, but with full standard library.


xxx Linux macOS Windows FreeBSD NetBSD OpenBSD
armv7
aarch64
MIPS
PPC (32-bit)
PPC (64-bit)
RISC-V
s390x
SPARC
x86 (32-bit) Tier1* Tier1* Tier2 Tier3* Tier3*
x86 (64-bit) Tier1* Tier1* Tier1* Tier2* Tier2* Tier3*