rust/src
Matthias Krüger 60bbb533df
Rollup merge of #147205 - alexcrichton:wasip3, r=davidtwco
Add a new `wasm32-wasip3` target to Rust

This commit adds a new tier 3 target to rustc, `wasm32-wasip3`. This follows in the footsteps of the previous `wasm32-wasip2` target and is used to represent binding to the WASIp3 set of APIs managed by the WASI subgroup to the WebAssembly Community Group.

As of now the WASIp3 set of APIs are not finalized nor standardized. They're in the process of doing so and the current trajectory is to have the APIs published in December of this year. The goal here is to get the wheels turning in Rust to have the target in a
more-ready-than-nonexistent state by the time this happens in December.

For now the `wasm32-wasip3` target looks exactly the same as `wasm32-wasip2` except that `target_env = "p3"` is specified. This indicates to crates in the ecosystem that WASIp3 APIs should be used, such as the [`wasip3` crate]. Over time this target will evolve as implementation in guest toolchains progress, notably:

* The standard library will use WASIp3 APIs natively once they're finalized in the WASI subgroup.
* Support through `wasi-libc` will be updated to use WASIp3 natively which Rust will then transitively use.
* Longer-term, features such as cooperative multithreading will be added to the WASIp3-track of targets to enable using `std::thread`, for example, on this target.

These changes are all expected to be non-breaking changes for users of this target. Runtimes supporting WASIp3, currently Wasmtime and Jco, support WASIp2 APIs as well and will work with components whether or not they import WASIp2, both WASIp2 and WASIp3, or just WASIp3 APIs. This means that changing the internal implementation details of libstd over time is expected to be a non-breaking change.

[`wasip3` crate]: https://crates.io/crates/wasip3
2025-10-07 19:39:07 +02:00
..
bootstrap Rollup merge of #147205 - alexcrichton:wasip3, r=davidtwco 2025-10-07 19:39:07 +02:00
build_helper Include additional hashes in src/stage0 2025-09-27 08:43:22 -04:00
ci Auto merge of #145898 - lolbinarycat:rustdoc-search-trait-parent, r=GuillaumeGomez,notriddle 2025-10-03 08:43:43 +00:00
doc Rollup merge of #147205 - alexcrichton:wasip3, r=davidtwco 2025-10-07 19:39:07 +02:00
etc Rollup merge of #141839 - tshepang:ease-lsp-use, r=Mark-Simulacrum,fee1-dead 2025-10-03 09:16:26 +10:00
gcc@4e995bd73c Update GCC submodule 2025-08-26 18:09:42 +02:00
librustdoc Rollup merge of #147237 - yotamofek:pr/rustdoc/highlight/optimize-end_expansion, r=GuillaumeGomez 2025-10-06 21:20:09 +11:00
llvm-project@8c30b9c509 Update LLVM to 21.1.2 2025-09-24 07:34:22 +08:00
rustc-std-workspace
rustdoc-json-types Add new doc(attribute = "...") attribute 2025-08-28 15:56:29 +02:00
tools Rollup merge of #147396 - GuillaumeGomez:fluent-tidy-improvements, r=kobzol 2025-10-07 07:04:19 +02:00
README.md
stage0 Update stage0 per previous commmit 2025-09-27 08:45:40 -04:00
version Bump version to 1.92.0 2025-09-13 10:09:15 -04:00

This directory contains some source code for the Rust project, including:

  • The bootstrapping build system
  • Various submodules for tools, like cargo, tidy, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.