github.com
# Summary [summary]: #summary Documentation of [`#[no_mangle]`](https://doc.rust-lang.org/reference/abi.html#the-no_mangle-attribute) points out that by default a `#[no_mangle]` function (or `static`) will be "publicly exported from the pro...
RFC 3834
RFC
2025-06-12
~24 min read
github.com
## Summary [summary]: #summary While Rust's pre-built standard library has proven itself sufficient for the majority of use cases, there are a handful of use cases that are not well supported: 1. Rebuilding the standard library to match the...
RFC 3873
RFC
2025-06-05
~41 min read
github.com
## Summary [summary]: #summary Add a new Cargo configuration option, `build-std.when = "always|never"`, which will unconditionally rebuild standard library dependencies. The set of standard library dependencies can optionally be customised...
RFC 3874
RFC
2025-06-05
~50 min read
github.com
Summary Allow users to add explicit dependencies on standard library crates in the Cargo.toml. This enables Cargo to determine which standard library crates are required by the crate graph without build-std.crates being set and for differen...
RFC 3875
RFC
2025-06-05
~31 min read
github.com
## Summary [summary]: #summary Promote aarch64-pc-windows-msvc to Tier 1 with Host Tools. ## Motivation [motivation]: #motivation About [30% of Rust users use Windows][survey-2024], while the majority of these developers and their customers...
RFC 3817
RFC
2025-05-22
~6 min read
github.com
## Summary [summary]: #summary Allow deriving an implementation of the `From` trait using `#[derive(From)]` on structs with a single field. ```rust #[derive(From)] struct TcpPort(u16); // Generates: impl From<u16> for TcpPort { fn from(valu...
RFC 3809
RFC
2025-05-06
~14 min read
github.com
Summary This RFC adds three new attributes: • #![register_lint_tool(tool_name)] allows controlling namespaced lints with #[warn(tool_name::lint_name)]. • #![register_attribute_tool(tool_name)] allows using tool names in inert attributes wit...
RFC 3808
RFC
2025-03-22
~16 min read
github.com
## Summary [summary]: #summary `--crate-attr` allows injecting crate-level attributes via the command line. It is supported by all the official rustc drivers: Rustc, Rustdoc, Clippy, Miri, and Rustfmt. Rustdoc extends it to doctests, discus...
RFC 3791
RFC
2025-03-16
~9 min read
github.com
## Summary [summary]: #summary Deprecate `lib.edition`, etc in favor of only setting `package.edition`, removing the fields in the next Edition. ## Motivation [motivation]: #motivation Cargo supports setting the edition per-build-target: ``...
RFC 3772
RFC
2025-02-13
~5 min read
github.com
## Summary [summary]: #summary Demote target `i686-pc-windows-gnu` from Tier 1 to Tier 2 (with host tools) to better reflect its current maintenance and usage status. ## Motivation [motivation]: #motivation ### Background Rust has supported...
RFC 3771
RFC
2025-02-11
~8 min read
github.com
## Summary Propose a slate of 39 project goals for 2025H1, including 3 flagship goals: * Continue making Rust easier to use for network systems by [**bringing the Async Rust experience closer to parity with sync Rust**](https://rust-lang.gi...
RFC 3764
RFC
2025-01-14
~28 min read
github.com
# Security Improvements for CI Publishing to crates.io - Feature Name: crates-io-trusted-publishing - Start Date: 2024-09-10 - RFC PR: [rust-lang/rfcs#3691](https://github.com/rust-lang/rfcs/pull/3691) ## Summary [summary]: #summary This RF...
RFC 3691
RFC
2024-12-13
~17 min read
github.com
## Summary Disallow `extern` without an explicit ABI in a new edition. Write `extern "C"` (or another ABI) instead of just `extern`. ```diff - extern { … } + extern "C" { … } - extern fn foo() { … } + extern "C" fn foo() { … } ``` ## Motiva...
RFC 3722
RFC
2024-10-30
~2 min read
github.com
## Summary [summary]: #summary * We introduce the concept of "target modifier". A target modifier is a flag where it may be unsound if you link together two compilation units that disagree on the flag. * We fail the build if rustc can see t...
RFC 3716
RFC
2024-10-24
~18 min read
github.com
## Summary [summary]: #summary Support defining `macro_rules!` macros that work as attribute macros. ## Motivation [motivation]: #motivation Many crates provide attribute macros. Today, this requires defining proc macros, in a separate crat...
RFC 3697
RFC
2024-09-20
~8 min read
github.com
## Summary [summary]: #summary Support implementing `derive(Trait)` via a `macro_rules!` macro. ## Motivation [motivation]: #motivation Many crates support deriving their traits with `derive(Trait)`. Today, this requires defining proc macro...
RFC 3698
RFC
2024-09-20
~9 min read
github.com
## Summary [summary]: #summary Allow `true` and `false` boolean literals as `cfg` predicates, i.e. `cfg(true)`/`cfg(false)`. ## Motivation [motivation]: #motivation Often, we may want to temporarily disable a block of code while working on...
RFC 3695
RFC
2024-09-16
~2 min read
github.com
## Summary [summary]: #summary Give users control over the feature unification that happens based on the packages they select. - A way for `cargo check -p foo -p bar` to build like `cargo check -p foo && cargo check -p bar` - A way for `car...
RFC 3692
RFC
2024-09-11
~7 min read
github.com
## Summary [summary]: #summary Allow `struct` definitions to provide default values for individual fields and thereby allowing those to be omitted from initializers. When deriving `Default`, the provided values will then be used. For exampl...
RFC 3681
RFC
2024-08-22
~45 min read
github.com
## Summary [summary]: #summary Support restricting implementation of individual methods within traits, using the existing unused `final` keyword. ## Motivation [motivation]: #motivation When defining a trait, the trait can provide optional...
RFC 3678
RFC
2024-07-20
~6 min read