Skip to content

Commit 8af499f

Browse files
Merge branch 'master' into patch-10
2 parents ebd6f50 + 181288e commit 8af499f

File tree

1 file changed

+116
-71
lines changed

1 file changed

+116
-71
lines changed

draft/2025-09-17-this-week-in-rust.md

Lines changed: 116 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ and just ask the editors to select the category.
3838
-->
3939

4040
### Official
41+
* [crates.io phishing campaign](https://blog.rust-lang.org/2025/09/12/crates-io-phishing-campaign/)
4142

4243
### Foundation
4344

@@ -49,77 +50,64 @@ and just ask the editors to select the category.
4950
* [Cot v0.4: Particularly Lazy](https://mackow.ski/blog/cot-v04-particularly-lazy/)
5051
* [Announcing Diesel 2.3](https://diesel.rs/news/2_3_0_release.html)
5152
* [A Sneak Peek at SeaORM 2.0](https://www.sea-ql.org/blog/2025-09-16-sea-orm-2.0/)
53+
* [Announcing Pingoo: The fast and secure Load Balancer / API Gateway with built-in service discovery and WAF](https://kerkour.com/announcing-pingoo)
54+
* [Rerun 0.25.0 - Syntax highlighting, table filtering, transparent objects](https://github.com/rerun-io/rerun/releases/tag/0.25.0)
55+
* [Introducing Obelisk 0.24.1](https://obeli.sk/blog/introducing-obelisk-0-24-1/)
56+
* [Introducing CurveForge](https://smartnets.etrovub.be/posts/introducing-curveforge/)
57+
* [Swiftide 0.31](https://blog.bosun.ai/swiftide-0-31/)
58+
* [hotpath 0.2.5 - a simple performance and memory profiler](https://github.com/pawurb/hotpath)
5259

5360
### Observations/Thoughts
54-
5561
* [The pirate-based logic of Rust shared references](http://ais523.me.uk/blog/logic-of-shared-references.html)
62+
* [Embedded async debugging and inspect-embassy](https://tweedegolf.nl/en/blog/161/embedded-async-debugging-and-inspect-embassy)
63+
* [Be Simple](https://corrode.dev/blog/simple/)
64+
* [Why We Built Our Own SQL Parser From Scratch: A Rust Implementation Story](https://www.databend.com/blog/category-engineering/2025-09-10-query-parser/)
65+
* [Comparing transitive dependency version resolution in Rust and Java](https://blog.frankel.ch/dependency-version-resolution-rust-java/)
66+
* [Trade-offs in designing DSLs](https://forgestream.idverse.com/blog/20250916-dsl-trade-offs/)
67+
* [Rust Algorithm Bites – Validating a Binary Search Tree](https://d34dl0ck.me/rust-algorithm-bites-validate-bst/index.html)
68+
* [Rust on Android - Lessons from the Edge](https://greptime.com/blogs/2025-04-14-rust-in-android-edge-based-practice)
5669

5770
### Rust Walkthroughs
5871
* [Axum Backend Series: Docker, Database and Connection Pooling](https://blog.0xshadow.dev/posts/backend-engineering-with-axum/axum-database-setup-using-docker/)
5972
* [The Hidden Rules Behind Rust Functions & Closures](https://blog.cuongle.dev/p/the-hidden-rules-behind-rust-functions)
60-
73+
* [Rust unit testing: asynchronous code](https://jorgeortiz.dev/posts/rust_unit_testing_async_code/)
6174
* [Ray Tracing in One Weekend - In Rust](https://buttondown.com/dabeaz/archive/new-video-ray-tracing-in-one-weekend-in-rust/)
75+
* [New Schematic - How to save $327.6 million using Rust](https://newschematic.org/blog/how-to-save-327-6-million-using-rust/)
76+
* [series] [Real Time Clock - Rust Embedded Drivers Book](https://red.implrust.com/rtc/index.html)
6277

6378
### Research
6479

6580
### Miscellaneous
81+
* [audio] [Netstack.FM — A Podcast About Networking and Rust](https://netstack.fm/#episode-5)
82+
* [video] [Jan David Nose Interview, Rust Infrastructure Team (Rust Project Content @ RustConf 2025)](https://www.youtube.com/watch?v=r7i-2wHtNjw)
6683
* [August 2025 Rust Jobs Report](https://filtra.io/rust/jobs-report/aug-25)
84+
* [The Symbiosis Of Rust And Arm: A Conversation With David Wood](https://filtra.io/rust/interviews/arm-sep-25)
6785

6886
## Crate of the Week
6987

70-
<!-- COTW goes here -->
88+
This week's crate is [asciinema](https://crates.io/crates/asciinema), a well-known command-line tool for recording, replaying and streaming terminal sessions recently rewritten in Rust.
89+
90+
Despite a lack of suggestions, llogiq is plenty happy with his choice.
7191

7292
[Please submit your suggestions and votes for next week][submit_crate]!
7393

7494
[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704
7595

7696
## Calls for Testing
77-
An important step for feature implementation is for people to experiment with the
97+
An important step for RFC implementation is for people to experiment with the
7898
implementation and give feedback, especially before stabilization.
7999

80-
If you are a feature implementer and would like your feature to appear in this list, add a
100+
If you are a feature implementer and would like your RFC to appear in this list, add a
81101
`call-for-testing` label to your RFC along with a comment providing testing instructions and/or
82102
guidance on which aspect(s) of the feature need testing.
83103

84-
<!-- If there are new CfT items this week, use: -->
85-
<!--
86-
[Repo Name](Repo URL)
87-
* [<Feature name>](<Feature URL>)
88-
* [Testing steps](<Testing Steps URL>)
89-
-->
90-
<!-- where `Repo Name` and `Repo URL` are one of:
91-
[Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
92-
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
93-
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
94-
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing)
95-
-->
96-
97-
<!-- For all `Repo Names` with no new CfT items this week: use (removing the repos for which new
98-
CfT items did appear, of course) -->
99-
<!--
100104
* *No calls for testing were issued this week by
101105
[Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
102106
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
103107
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
104108
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
105-
-->
106-
* *No calls for testing were issued this week by [Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
107-
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
108-
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
109-
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
110109

111110
[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.
112-
-->
113-
114-
### [RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing)
115-
116-
### [Rust](https://github.com/rust-lang/rust/labels/call-for-testing)
117-
118-
### [Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing)
119-
120-
If you are a feature implementer and would like your RFC to appear on the above list, add the new `call-for-testing`
121-
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
122-
need testing.
123111

124112
## Call for Participation; projects and speakers
125113

@@ -144,13 +132,78 @@ If you are a Rust project owner and are looking for contributors, please submit
144132
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
145133

146134
<!-- CFPs go here, use this format: * [**event name**](URL to CFP)| Date CFP closes in YYYY-MM-DD | city,state,country | Date of event in YYYY-MM-DD -->
147-
<!-- or if none - *No Calls for papers or presentations were submitted this week.* -->
135+
*No Calls for papers or presentations were submitted this week.*
148136

149137
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a [PR to TWiR](https://github.com/rust-lang/this-week-in-rust) or by reaching out on [X (formerly Twitter)](https://x.com/ThisWeekInRust) or [Mastodon](https://mastodon.social/@thisweekinrust)!
150138

151139
## Updates from the Rust Project
152140

153-
<!-- Rust updates go here -->
141+
379 pull requests were [merged in the last week][merged]
142+
143+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-09-09..2025-09-16
144+
145+
#### Compiler
146+
* [implement `#[rustc_align_static(N)]` on `static`s](https://github.com/rust-lang/rust/pull/146178)
147+
* [move more early buffered lints to dyn lint diagnostics](https://github.com/rust-lang/rust/pull/145881)
148+
* [make `AssocItem` aware of its impl kind](https://github.com/rust-lang/rust/pull/145186)
149+
* [match clang's `va_arg` assembly on arm targets](https://github.com/rust-lang/rust/pull/144549)
150+
* [reject invalid literal suffixes in tuple indexing, tuple `struct` indexing, and `struct` field name position](https://github.com/rust-lang/rust/pull/145463)
151+
* [sort array trait implementation suggestions correctly](https://github.com/rust-lang/rust/pull/146403)
152+
* [strip frontmatter in fewer places](https://github.com/rust-lang/rust/pull/146340)
153+
* [miri: fix release/scquire synchonization for loads from the store buffer](https://github.com/rust-lang/miri/pull/4577)
154+
* [miri: make a basic hello world work on wasip2](https://github.com/rust-lang/miri/pull/4582)
155+
156+
#### Library
157+
* [constify Eq, Ord, PartialOrd](https://github.com/rust-lang/rust/pull/144847)
158+
* [implement `Sum` and `Product` for `f16` and `f128`](https://github.com/rust-lang/rust/pull/146300)
159+
* [inclusive `Range`s: change `end` to `last`](https://github.com/rust-lang/rust/pull/144765)
160+
* [make `Barrier` `RefUnwindSafe` again](https://github.com/rust-lang/rust/pull/146322)
161+
* [stabilize `BTree{Map,Set}::extract_if`](https://github.com/rust-lang/rust/pull/145471)
162+
* [support integer literals in `${concat()}`](https://github.com/rust-lang/rust/pull/146308)
163+
164+
#### Cargo
165+
* [cli: Allow completions for third-party subcommand names](https://github.com/rust-lang/cargo/pull/15961)
166+
* [completer: Added completion for `--features` flag](https://github.com/rust-lang/cargo/pull/15309)
167+
* [complete: Show local crates/features over other members](https://github.com/rust-lang/cargo/pull/15956)
168+
* [frontmatter: Try alternative len code fences](https://github.com/rust-lang/cargo/pull/15952)
169+
* [manifest: Show error source to users](https://github.com/rust-lang/cargo/pull/15939)
170+
* [publish: Switch the 'ctrl-c on wait' line to a help message](https://github.com/rust-lang/cargo/pull/15942)
171+
172+
#### Rustdoc
173+
* [Correctly handle literal search on paths](https://github.com/rust-lang/rust/pull/146448)
174+
175+
#### Clippy
176+
* [`elidable_lifetime_names`: avoid overlapping spans in suggestions](https://github.com/rust-lang/rust-clippy/pull/15667)
177+
* [`len_zero`: don't eagerly call `GenericArgs::type_at`](https://github.com/rust-lang/rust-clippy/pull/15660)
178+
* [`multiple_unsafe_ops_per_block`: ignore unsafe ops from `.await` desugaring](https://github.com/rust-lang/rust-clippy/pull/15654)
179+
* [`needless_closure`: don't lint on `AsyncFn*`s](https://github.com/rust-lang/rust-clippy/pull/15649)
180+
* [`needless_return`: fix false positive with `cfg`d code after return](https://github.com/rust-lang/rust-clippy/pull/15669)
181+
* [`ref_option`: don't lint in external and proc-macros](https://github.com/rust-lang/rust-clippy/pull/15668)
182+
* [`semicolon_inside_block`: don't lint if block is in parens](https://github.com/rust-lang/rust-clippy/pull/15626)
183+
* [`use_self`: don't early-return if the outer type has no lifetimes](https://github.com/rust-lang/rust-clippy/pull/15611)
184+
* [add suggestion to `cast_sign_loss` and `cast_possible_wrap` using the `cast_{un,}signed()` methods](https://github.com/rust-lang/rust-clippy/pull/15384)
185+
* [fix `as_underscore` to only suggest when it's suggestable](https://github.com/rust-lang/rust-clippy/pull/15652)
186+
* [fix `invalid_upcast_comparisons` wrongly unmangled macros](https://github.com/rust-lang/rust-clippy/pull/15663)
187+
* [fix `useless_attribute` false positive on `deprecated_in_future`](https://github.com/rust-lang/rust-clippy/pull/15645)
188+
* [recognize canonical `?` pattern with `Result`](https://github.com/rust-lang/rust-clippy/pull/15680)
189+
190+
#### Rust-Analyzer
191+
* [add more workaround hacks for incorrect startup diagnostics](https://github.com/rust-lang/rust-analyzer/pull/20402)
192+
* [fix `LifetimeParam::lifetime_bounds` invalid implement](https://github.com/rust-lang/rust-analyzer/pull/20624)
193+
* [fix extra semicolon before else in let-stmt](https://github.com/rust-lang/rust-analyzer/pull/20657)
194+
* [fix indent for `unresolved_field` fixes](https://github.com/rust-lang/rust-analyzer/pull/20613)
195+
* [always coerce in a cast, even when there are unknown types](https://github.com/rust-lang/rust-analyzer/pull/20649)
196+
* [don't mark unknown type as implementing every notable trait](https://github.com/rust-lang/rust-analyzer/pull/20665)
197+
* [don't output an empty generic parameters list in `generate_function`](https://github.com/rust-lang/rust-analyzer/pull/20653)
198+
* [don't trigger two flychecks when saving files that are part of targets](https://github.com/rust-lang/rust-analyzer/pull/20635)
199+
* [fix expand macro recursively not working correctly for nested macro calls](https://github.com/rust-lang/rust-analyzer/pull/20612)
200+
* [fix normalization in the new solver](https://github.com/rust-lang/rust-analyzer/pull/20647)
201+
* [infinite loop while elaborting predicates](https://github.com/rust-lang/rust-analyzer/pull/20654)
202+
* [make `#[target_feature]` always safe on WASM](https://github.com/rust-lang/rust-analyzer/pull/20642)
203+
* [more precise clause filtering for `explicit_*_predicates_of`](https://github.com/rust-lang/rust-analyzer/pull/20671)
204+
* [only compute unstable paths on nightly toolchains for IDE features](https://github.com/rust-lang/rust-analyzer/pull/20517)
205+
* [resolve paths to snapshot test libraries absolutely](https://github.com/rust-lang/rust-analyzer/pull/20639)
206+
* [migrate `InferenceTable` into next-solver](https://github.com/rust-lang/rust-analyzer/pull/20578)
154207

155208
### Rust Compiler Performance Triage
156209

@@ -180,47 +233,35 @@ Revision range: [f13ef0d7..52618eb3](https://perf.rust-lang.org/?start=f13ef0d75
180233
Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These
181234
are the RFCs that were approved for implementation this week:
182235

183-
<!-- Approved RFCs go here, use this format: * [Topic](URL) -->
184-
<!-- or if none were approved this week, use: * *No RFCs were approved this week.* -->
185-
<!-- * []() -->
186-
187-
<!--
188-
### [Approved Major Change Proposals (MCP)](https://forge.rust-lang.org/compiler/mcp.html)
189-
<!~~ MCPs occur infrequently, so this section is commented out by default. ~~>
190-
<!~~ MCPs which have been approved or rejected this week go here, use this format: * [major change accepted|rejected] [Topic](URL) ~~>
191-
-->
236+
* *No RFCs were approved this week.*
192237

193238
### Final Comment Period
194239

195240
Every week, [the team](https://www.rust-lang.org/team.html) announces the 'final comment period' for RFCs and key PRs
196241
which are reaching a decision. Express your opinions now.
197242

198-
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
199-
<!-- RFCs which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
200-
<!-- or if none entered FCP this week, use: * *No RFCs entered Final Comment Period this week.* -->
201-
<!-- * [disposition: ] []() -->
202-
203243
#### Tracking Issues & PRs
204-
<!-- Tracking Issues which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
205-
<!-- or if none entered FCP this week, use: -->
206-
<!-- * *No Tracking Issues or PRs entered Final Comment Period this week.* -->
207-
<!-- * [disposition: ] []() -->
208-
209244
##### [Rust](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
210-
211-
##### [Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
212-
213-
##### [Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+)
214-
215-
##### [Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
216-
217-
##### [Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
245+
* [Allow &raw `[mut | const]` for union field in safe code](https://github.com/rust-lang/rust/pull/141469)
246+
* [Deny-by-default never type lints](https://github.com/rust-lang/rust/pull/146167)
247+
* [Opportunistically split `!=` to successfully parse never type](https://github.com/rust-lang/rust/pull/145536)
248+
* [Allow specifying multiple bounds for same associated item, except in trait objects](https://github.com/rust-lang/rust/pull/146593)
249+
* [rustdoc: hide `#[repr]` if it isn't part of the public ABI](https://github.com/rust-lang/rust/pull/116882)
250+
251+
*No Items entered Final Comment Period this week for
252+
[Rust RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period),
253+
[Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
254+
[Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+),
255+
[Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
256+
[Leadership Council](https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period) or
257+
[Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc).*
258+
259+
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
218260

219261
#### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
220-
<!-- New or updated RFCs go here, use this format: * [new|updated] [Topic](URL) -->
221-
<!-- or if there are no new or updated RFCs this week, use: -->
222-
<!-- * *No New or Updated RFCs were created this week.* -->
223-
<!-- * [new|updated] []() -->
262+
* [RFC: `#[cfg(since(rust, "1.95"))]` for Rust-version conditional compilation](https://github.com/rust-lang/rfcs/pull/3857)
263+
* [Mitigation enforcement](https://github.com/rust-lang/rfcs/pull/3855)
264+
* [RFC for `#[stable(since)]`](https://github.com/rust-lang/rfcs/pull/3854)
224265

225266
## Upcoming Events
226267

@@ -344,7 +385,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
344385

345386
# Quote of the Week
346387

347-
<!-- QOTW goes here -->
388+
> **Real Question:** is an array a struct/tuple, or is it an enum?
389+
390+
[Lokathor on github](https://github.com/rust-lang/rust/pull/146509#discussion_r2346807413)
391+
392+
Thanks to [Theemathas](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1716) for the suggestion!
348393

349394
[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)
350395

0 commit comments

Comments
 (0)