@@ -39,62 +39,48 @@ and just ask the editors to select the category.
3939### Newsletters
4040
4141### 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.
4346
4447### Observations/Thoughts
4548
4649### 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/ )
4853
4954### Research
5055
5156### Miscellaneous
5257
58+ * [ 100 Exercises to Learn Rust: RustRover Edition] ( https://blog.jetbrains.com/education/2025/07/28/rust-exercises-rustrover/ )
59+
5360## Crate of the Week
5461
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!
5665
5766[ Please submit your suggestions and votes for next week] [ submit_crate ] !
5867
5968[ submit_crate ] : https://users.rust-lang.org/t/crate-of-the-week/2704
6069
6170## 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
6372implementation and give feedback, especially before stabilization.
6473
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
6675` call-for-testing ` label to your RFC along with a comment providing testing instructions and/or
6776guidance on which aspect(s) of the feature need testing.
6877
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- -->
9178* * No calls for testing were issued this week by [ Rust] ( https://github.com/rust-lang/rust/labels/call-for-testing ) ,
9279 [ Rust language RFCs] ( https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing ) ,
9380 [ Cargo] ( https://github.com/rust-lang/cargo/labels/call-for-testing ) or
9481 [ Rustup] ( https://github.com/rust-lang/rustup/labels/call-for-testing ) .*
9582
9683[ 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- -->
9884
9985### [ RFCs] ( https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing )
10086
@@ -134,58 +120,111 @@ If you are an event organizer hoping to expand the reach of your event, please s
134120
135121## Updates from the Rust Project
136122
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 )
138169
139170### Rust Compiler Performance Triage
140171
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 )
142183
143184### [ Approved RFCs] ( https://github.com/rust-lang/rfcs/commits/master )
144185
145186Changes to Rust follow the Rust [ RFC (request for comments) process] ( https://github.com/rust-lang/rfcs#rust-rfcs ) . These
146187are the RFCs that were approved for implementation this week:
147188
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.*
157190
158191### Final Comment Period
159192
160193Every week, [ the team] ( https://www.rust-lang.org/team.html ) announces the 'final comment period' for RFCs and key PRs
161194which are reaching a decision. Express your opinions now.
162195
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-
168196#### 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-
174197##### [ 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.
183225
184226#### [ 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 )
189228
190229## Upcoming Events
191230
@@ -231,10 +270,6 @@ Rusty Events between 2025-07-30 - 2025-08-27 🦀
231270* 2025-09-02 - 2025-09-05 | Hybrid (Seattle, WA, US) | [ RustConf] ( https://rustconf.com/ )
232271 * [ ** RustConf 2025** ] ( https://rustconf.com/ )
233272
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-
238273### Europe
239274* 2025-07-30 | Amsterdam, NL | [ Rust Developers Amsterdam Group] ( https://www.meetup.com/rust-amsterdam-group )
240275 * [ ** 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)
331366
332367# Quote of the Week
333368
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.
335374
336375[ Please submit quotes and vote for next week!] ( https://users.rust-lang.org/t/twir-quote-of-the-week/328 )
337376
0 commit comments