@@ -39,62 +39,48 @@ and just ask the editors to select the category.
39
39
### Newsletters
40
40
41
41
### Project/Tooling Updates
42
- [ Embedded DHT Sensor Library] ( https://rust-dd.com/post/building-a-rust-library-for-dht11-sensor-a-step-by-step-guide )
42
+ * [ Embedded DHT Sensor Library] ( https://rust-dd.com/post/building-a-rust-library-for-dht11-sensor-a-step-by-step-guide )
43
+ * [ Rust eBooks Nightly: always up-to-date Rust books in EPUB, AZW3, MOBI, PDF] ( https://artur-sulej.github.io/rust-ebooks/ )
44
+ * [ git-cliff 2.10.0 is released! (a highly customizable changelog generator)] ( https://git-cliff.org/blog/2.10.0 )
45
+ * [ Nutype 0.6.2] ( https://github.com/greyblake/nutype/releases/tag/v0.6.2 ) - supports ` derive_unsafe ` attribute to derive arbitrary third party traits.
43
46
44
47
### Observations/Thoughts
45
48
46
49
### Rust Walkthroughs
47
- [ Using ESP32 as a Rust Beginner] ( https://rust-dd.com/post/introduction-to-embedded-systems-with-rust-a-beginner-s-guide-using-esp32 )
50
+ * [ Using ESP32 as a Rust Beginner] ( https://rust-dd.com/post/introduction-to-embedded-systems-with-rust-a-beginner-s-guide-using-esp32 )
51
+ * [ The Signal Protocol Explained #2 : Implementing the Double Ratchet Algorithm in Rust] ( https://kerkour.com/signal-protocol-double-ratchet-rust )
52
+ * [ The Design and Implementation of Extensible Variants for Rust in CGP (Extensible Data Types Part 4)] ( https://contextgeneric.dev/blog/extensible-datatypes-part-4/ )
48
53
49
54
### Research
50
55
51
56
### Miscellaneous
52
57
58
+ * [ 100 Exercises to Learn Rust: RustRover Edition] ( https://blog.jetbrains.com/education/2025/07/28/rust-exercises-rustrover/ )
59
+
53
60
## Crate of the Week
54
61
55
- <!-- COTW goes here -->
62
+ This week's crate is [ qop] ( https://github.com/cchexcode/qop ) , a standalone SQL migration tool.
63
+
64
+ Thanks to [ Alexander Weber] ( https://users.rust-lang.org/t/crate-of-the-week/2704/1454 ) for the self-suggestion!
56
65
57
66
[ Please submit your suggestions and votes for next week] [ submit_crate ] !
58
67
59
68
[ submit_crate ] : https://users.rust-lang.org/t/crate-of-the-week/2704
60
69
61
70
## Calls for Testing
62
- An important step for feature implementation is for people to experiment with the
71
+ An important step for RFC implementation is for people to experiment with the
63
72
implementation and give feedback, especially before stabilization.
64
73
65
- If you are a feature implementer and would like your feature to appear in this list, add a
74
+ If you are a feature implementer and would like your RFC to appear in this list, add a
66
75
` call-for-testing ` label to your RFC along with a comment providing testing instructions and/or
67
76
guidance on which aspect(s) of the feature need testing.
68
77
69
- <!-- If there are new CfT items this week, use: -->
70
- <!--
71
- [Repo Name](Repo URL)
72
- * [<Feature name>](<Feature URL>)
73
- * [Testing steps](<Testing Steps URL>)
74
- -->
75
- <!-- where `Repo Name` and `Repo URL` are one of:
76
- [Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
77
- [Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
78
- [Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
79
- [Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing)
80
- -->
81
-
82
- <!-- For all `Repo Names` with no new CfT items this week: use (removing the repos for which new
83
- CfT items did appear, of course) -->
84
- <!--
85
- * *No calls for testing were issued this week by
86
- [Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
87
- [Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
88
- [Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
89
- [Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
90
- -->
91
78
* * No calls for testing were issued this week by [ Rust] ( https://github.com/rust-lang/rust/labels/call-for-testing ) ,
92
79
[ Rust language RFCs] ( https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing ) ,
93
80
[ Cargo] ( https://github.com/rust-lang/cargo/labels/call-for-testing ) or
94
81
[ Rustup] ( https://github.com/rust-lang/rustup/labels/call-for-testing ) .*
95
82
96
83
[ Let us know] ( https://github.com/rust-lang/this-week-in-rust/issues ) if you would like your feature to be tracked as a part of this list.
97
- -->
98
84
99
85
### [ RFCs] ( https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing )
100
86
@@ -134,58 +120,111 @@ If you are an event organizer hoping to expand the reach of your event, please s
134
120
135
121
## Updates from the Rust Project
136
122
137
- <!-- Rust updates go here -->
123
+ 428 pull requests were [ merged in the last week] [ merged ]
124
+
125
+ [ merged ] : https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-07-22..2025-07-29
126
+
127
+ #### Compiler
128
+ * [ avoid unnecessary ` new_adt ` /` new_fn_def ` calls] ( https://github.com/rust-lang/rust/pull/144425 )
129
+ * [ ` loop_match ` : suggest extracting to a ` const ` item] ( https://github.com/rust-lang/rust/pull/143585 )
130
+
131
+ #### Library
132
+ * [ add ` Rev::into_inner ` ] ( https://github.com/rust-lang/rust/pull/144278 )
133
+ * [ str: mark unstable ` round_char_boundary ` feature functions as const] ( https://github.com/rust-lang/rust/pull/144472 )
134
+
135
+ #### Cargo
136
+ * [ schema: Expose ` IndexPackage ` , the description of a package within a Registry Index] ( https://github.com/rust-lang/cargo/pull/15770 )
137
+ * [ allow using Cargo-as-a-library with gix's reqwest backend] ( https://github.com/rust-lang/cargo/pull/15653 )
138
+ * [ fix: ` no-proc-macro ` is overridden by subsequent edges] ( https://github.com/rust-lang/cargo/pull/15764 )
139
+ * [ timings: make graphs scalable to user's window] ( https://github.com/rust-lang/cargo/pull/15766 )
140
+ * [ use ` gix ` for ` cargo package ` ] ( https://github.com/rust-lang/cargo/pull/15534 )
141
+
142
+ #### Rustdoc
143
+ * [ rustdoc: add ways of collapsing all impl blocks] ( https://github.com/rust-lang/rust/pull/141663 )
144
+
145
+ #### Clippy
146
+ * [ ` cast-lossless ` should not suggest when casting type is from macro input] ( https://github.com/rust-lang/rust-clippy/pull/15358 )
147
+ * [ correct help message for ` arc_with_non_send_sync ` ] ( https://github.com/rust-lang/rust-clippy/pull/15332 )
148
+ * [ detect prefixed attributes as duplicated] ( https://github.com/rust-lang/rust-clippy/pull/15212 )
149
+ * [ fix ` empty_structs_with_brackets ` suggesting wrongly on generics] ( https://github.com/rust-lang/rust-clippy/pull/15355 )
150
+ * [ fix ` if_then_some_else_none ` false positive when require type coercion] ( https://github.com/rust-lang/rust-clippy/pull/15267 )
151
+ * [ fix ` ip_constant ` when call wrapped in extra parens] ( https://github.com/rust-lang/rust-clippy/pull/15339 )
152
+ * [ fix ` let_unit_value ` suggesting wrongly for format macros] ( https://github.com/rust-lang/rust-clippy/pull/15085 )
153
+ * [ fix ` match_single_binding ` wrongly handling scope] ( https://github.com/rust-lang/rust-clippy/pull/15060 )
154
+ * [ fix ` module_name_repetitions ` false positive on exported macros] ( https://github.com/rust-lang/rust-clippy/pull/15319 )
155
+ * [ fix ` unused_async ` false positive on function with ` todo! ` ] ( https://github.com/rust-lang/rust-clippy/pull/15308 )
156
+ * [ ` unnecessary_map_or ` : don't add parens if the parent expr…] ( https://github.com/rust-lang/rust-clippy/pull/15345 )
157
+
158
+ #### Rust-Analyzer
159
+ * [ add ide-assist: ` generate_impl_trait ` for ` generate_impl ` ] ( https://github.com/rust-lang/rust-analyzer/pull/19938 )
160
+ * [ change rename self to parameter use ` Self ` type] ( https://github.com/rust-lang/rust-analyzer/pull/20285 )
161
+ * [ fix ` generate_trait_from_impl ` whitespace after vis] ( https://github.com/rust-lang/rust-analyzer/pull/20297 )
162
+ * [ fix fold doc comment for multiline param list fn] ( https://github.com/rust-lang/rust-analyzer/pull/20302 )
163
+ * [ consider all produced artifacts for proc-macro dylib search] ( https://github.com/rust-lang/rust-analyzer/pull/20319 )
164
+ * [ fix incorrect build script version check] ( https://github.com/rust-lang/rust-analyzer/pull/20317 )
165
+ * [ fix runnables extra env not substituting env vars] ( https://github.com/rust-lang/rust-analyzer/pull/20313 )
166
+ * [ ignore ` Destruct ` bounds again] ( https://github.com/rust-lang/rust-analyzer/pull/20318 )
167
+ * [ parse ` for<'a> [const] ` ] ( https://github.com/rust-lang/rust-analyzer/pull/20281 )
168
+ * [ use ` TempDir ` for copied lockfiles] ( https://github.com/rust-lang/rust-analyzer/pull/20290 )
138
169
139
170
### Rust Compiler Performance Triage
140
171
141
- <!-- Perf results go here -->
172
+ A week with lots of mixed results, including a few benchmarks that appear to be
173
+ newly bimodal, which made some of the results look closer to noise than signal.
174
+ Overall, however, the week ended as a slight improvement.
175
+
176
+ Triage done by ** @simulacrum ** .
177
+ Revision range: [ 3f9f20f7..e3514bde] ( https://perf.rust-lang.org/?start=3f9f20f71dd945fe7d044e274094a53c90788269&end=e3514bde96d2d13586337a48db77fa64b850d249&absolute=false&stat=instructions%3Au )
178
+
179
+ 1 Regressions, 2 Improvements, 9 Mixed; 2 of them in rollups
180
+ 38 artifact comparisons made in total
181
+
182
+ [ Full report here] ( https://github.com/rust-lang/rustc-perf/blob/master/triage/2025/2025-07-28.md )
142
183
143
184
### [ Approved RFCs] ( https://github.com/rust-lang/rfcs/commits/master )
144
185
145
186
Changes to Rust follow the Rust [ RFC (request for comments) process] ( https://github.com/rust-lang/rfcs#rust-rfcs ) . These
146
187
are the RFCs that were approved for implementation this week:
147
188
148
- <!-- Approved RFCs go here, use this format: * [Topic](URL) -->
149
- <!-- or if none were approved this week, use: * *No RFCs were approved this week.* -->
150
- <!-- * []() -->
151
-
152
- <!--
153
- ### [Approved Major Change Proposals (MCP)](https://forge.rust-lang.org/compiler/mcp.html)
154
- <!~~ MCPs occur infrequently, so this section is commented out by default. ~~>
155
- <!~~ MCPs which have been approved or rejected this week go here, use this format: * [major change accepted|rejected] [Topic](URL) ~~>
156
- -->
189
+ * * No RFCs were approved this week.*
157
190
158
191
### Final Comment Period
159
192
160
193
Every week, [ the team] ( https://www.rust-lang.org/team.html ) announces the 'final comment period' for RFCs and key PRs
161
194
which are reaching a decision. Express your opinions now.
162
195
163
- #### [ RFCs] ( https://github.com/rust-lang/rfcs/labels/final-comment-period )
164
- <!-- RFCs which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
165
- <!-- or if none entered FCP this week, use: * *No RFCs entered Final Comment Period this week.* -->
166
- <!-- * [disposition: ] []() -->
167
-
168
196
#### Tracking Issues & PRs
169
- <!-- Tracking Issues which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
170
- <!-- or if none entered FCP this week, use: -->
171
- <!-- * *No Tracking Issues or PRs entered Final Comment Period this week.* -->
172
- <!-- * [disposition: ] []() -->
173
-
174
197
##### [ Rust] ( https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc )
175
-
176
- ##### [ Cargo] ( https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc )
177
-
178
- ##### [ Language Team] ( https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+ )
179
-
180
- ##### [ Language Reference] ( https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc )
181
-
182
- ##### [ Unsafe Code Guidelines] ( https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc )
198
+ * [ Allow the global allocator to use thread-local storage and std::thread : :current()] ( https://github.com/rust-lang/rust/pull/144465 )
199
+ * [ Tracking Issue for str::{floor, ceil}\_ char\_ boundary] ( https://github.com/rust-lang/rust/issues/93743 )
200
+ * [ Check coroutine upvars in dtorck constraint] ( https://github.com/rust-lang/rust/pull/144156 )
201
+ * [ Tracking Issue for arithmetic and certain bitwise ops on ` AtomicPtr ` ] ( https://github.com/rust-lang/rust/issues/99108 )
202
+ * [ Add lint against dangling pointers from local variables] ( https://github.com/rust-lang/rust/pull/144322 )
203
+ * [ ` apply_member_constraints ` : fix placeholder check] ( https://github.com/rust-lang/rust/pull/142071 )
204
+ * [ Remove the ` #[no_sanitize] ` attribute in favor of ` #[sanitize(xyz = "on|off") ` ]] ( https://github.com/rust-lang/rust/pull/142681 )
205
+ * [ Port ` #[should_panic] ` to the new attribute parsing infrastructure] ( https://github.com/rust-lang/rust/pull/143808 )
206
+ * [ emit ` StorageLive ` and schedule ` StorageDead ` for ` let ` - ` else ` 's bindings after matching] ( https://github.com/rust-lang/rust/pull/143028 )
207
+ * [ lower pattern bindings in the order they're written and base drop order on primary bindings' order] ( https://github.com/rust-lang/rust/pull/143764 )
208
+ * [ Upgrade semicolon_in_expressions_from_macros from warn to deny] ( https://github.com/rust-lang/rust/pull/144369 )
209
+ * [ Stabilize const TypeId::of] ( https://github.com/rust-lang/rust/pull/144133 )
210
+ * [ Mark all deprecation lints in name resolution as deny-by-default and report-in-deps] ( https://github.com/rust-lang/rust/pull/143929 )
211
+ * [ Tracking Issue for arithmetic that panics on overflow ( ` strict_* ` operations)] ( https://github.com/rust-lang/rust/issues/118260 )
212
+ * [[ rustdoc] Display unsafe attrs with edition 2024 ` unsafe() ` wrappers.] ( https://github.com/rust-lang/rust/pull/143662 )
213
+
214
+ ##### [ Rust RFCs] ( https://github.com/rust-lang/rfcs/labels/final-comment-period ) ,
215
+ * [ Demote ` x86_64-apple-darwin ` from Tier 1 to Tier 2 with host tools] ( https://github.com/rust-lang/rfcs/pull/3841 )
216
+ * [ RFC: enable ` derive(From) ` for single-field structs] ( https://github.com/rust-lang/rfcs/pull/3809 )
217
+
218
+ * No Items entered Final Comment Period this week for
219
+ [ Cargo] ( https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc ) ,
220
+ [ Language Team] ( https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+ ) ,
221
+ [ Language Reference] ( https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc ) or
222
+ [ Unsafe Code Guidelines] ( https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc ) .*
223
+
224
+ Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
183
225
184
226
#### [ New and Updated RFCs] ( https://github.com/rust-lang/rfcs/pulls )
185
- <!-- New or updated RFCs go here, use this format: * [new|updated] [Topic](URL) -->
186
- <!-- or if there are no new or updated RFCs this week, use: -->
187
- <!-- * *No New or Updated RFCs were created this week.* -->
188
- <!-- * [new|updated] []() -->
227
+ * [ new] [ Demote x86\_ 64-apple-darwin from Tier 1 to Tier 2 with host tools] ( https://github.com/rust-lang/rfcs/pull/3841 )
189
228
190
229
## Upcoming Events
191
230
@@ -231,10 +270,6 @@ Rusty Events between 2025-07-30 - 2025-08-27 🦀
231
270
* 2025-09-02 - 2025-09-05 | Hybrid (Seattle, WA, US) | [ RustConf] ( https://rustconf.com/ )
232
271
* [ ** RustConf 2025** ] ( https://rustconf.com/ )
233
272
234
- ### Africa
235
- * 2025-07-23 - 2025-08-21 | Ikot Akpaden, Mkpat Enin, Akwa Ibom State, NG | [ Rust Nigeria] ( https://x.com/RustNigeria )
236
- * [ ** Rust Developers Training Program: Akwa Ibom State University. 21 July - 21 Aug 2025.** ] ( https://docs.google.com/forms/d/e/1FAIpQLScQXHuFAw_Z11q0W0FZSVwQMyPSa6ReT3tW7ZUtoGbcLPBxkA/viewform )
237
-
238
273
### Europe
239
274
* 2025-07-30 | Amsterdam, NL | [ Rust Developers Amsterdam Group] ( https://www.meetup.com/rust-amsterdam-group )
240
275
* [ ** Rust Meetup @ BlockTech** ] ( https://www.meetup.com/rust-amsterdam-group/events/308548455 )
@@ -331,7 +366,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
331
366
332
367
# Quote of the Week
333
368
334
- <!-- QOTW goes here -->
369
+ > The same compute logic runs on all targets, written entirely in regular Rust. No shader or kernel languages are used.
370
+
371
+ – [ Christian Legnitto on the rust-gpu blog] ( https://rust-gpu.github.io/blog/2025/07/25/rust-on-every-gpu/ ) showing off a demo compiling Rust to all major GPU platforms + web.
372
+
373
+ Despite a lack of suggestions, llogiq is remarkably pleased with his choice.
335
374
336
375
[ Please submit quotes and vote for next week!] ( https://users.rust-lang.org/t/twir-quote-of-the-week/328 )
337
376
0 commit comments