Skip to content

Commit 4e1c71f

Browse files
Merge branch 'master' into patch-9
2 parents 25efc8a + 700bd09 commit 4e1c71f

File tree

1 file changed

+114
-71
lines changed

1 file changed

+114
-71
lines changed

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

Lines changed: 114 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

@@ -46,80 +47,65 @@ and just ask the editors to select the category.
4647
* [Rust Trends Issue #70: Foundation Moves and Performance Breakthroughs](https://rust-trends.com/newsletter/rust-foundation-performance-breakthroughs-2025)
4748

4849
### Project/Tooling Updates
50+
* [Announcing Pingoo: The fast and secure Load Balancer / API Gateway with built-in service discovery and WAF](https://kerkour.com/announcing-pingoo)
4951
* [Cot v0.4: Particularly Lazy](https://mackow.ski/blog/cot-v04-particularly-lazy/)
5052
* [Announcing Diesel 2.3](https://diesel.rs/news/2_3_0_release.html)
53+
* [Rerun 0.25.0 - Syntax highlighting, table filtering, transparent objects](https://github.com/rerun-io/rerun/releases/tag/0.25.0)
54+
* [Introducing Obelisk 0.24.1](https://obeli.sk/blog/introducing-obelisk-0-24-1/)
55+
* [Introducing CurveForge](https://smartnets.etrovub.be/posts/introducing-curveforge/)
56+
* [hotpath 0.2.5 - a simple performance and memory profiler](https://github.com/pawurb/hotpath)
57+
* [Swiftide 0.31](https://blog.bosun.ai/swiftide-0-31/)
5158

5259
### Observations/Thoughts
53-
5460
* [The pirate-based logic of Rust shared references](http://ais523.me.uk/blog/logic-of-shared-references.html)
61+
* [Embedded async debugging and inspect-embassy](https://tweedegolf.nl/en/blog/161/embedded-async-debugging-and-inspect-embassy)
62+
* [Be Simple](https://corrode.dev/blog/simple/)
63+
* [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/)
64+
* [Comparing transitive dependency version resolution in Rust and Java](https://blog.frankel.ch/dependency-version-resolution-rust-java/)
65+
* [Trade-offs in designing DSLs](https://forgestream.idverse.com/blog/20250916-dsl-trade-offs/)
66+
* [Rust Algorithm Bites – Validating a Binary Search Tree](https://d34dl0ck.me/rust-algorithm-bites-validate-bst/index.html)
5567
* [Rust on Android - Lessons from the Edge](https://greptime.com/blogs/2025-04-14-rust-in-android-edge-based-practice)
5668

5769
### Rust Walkthroughs
5870
* [Axum Backend Series: Docker, Database and Connection Pooling](https://blog.0xshadow.dev/posts/backend-engineering-with-axum/axum-database-setup-using-docker/)
5971
* [The Hidden Rules Behind Rust Functions & Closures](https://blog.cuongle.dev/p/the-hidden-rules-behind-rust-functions)
60-
72+
* [Rust unit testing: asynchronous code](https://jorgeortiz.dev/posts/rust_unit_testing_async_code/)
6173
* [Ray Tracing in One Weekend - In Rust](https://buttondown.com/dabeaz/archive/new-video-ray-tracing-in-one-weekend-in-rust/)
74+
* [New Schematic - How to save $327.6 million using Rust](https://newschematic.org/blog/how-to-save-327-6-million-using-rust/)
6275

6376
### Research
6477

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

6884
## Crate of the Week
6985

70-
<!-- COTW goes here -->
86+
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.
87+
88+
Despite a lack of suggestions, llogiq is plenty happy with his choice.
7189

7290
[Please submit your suggestions and votes for next week][submit_crate]!
7391

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

7694
## Calls for Testing
77-
An important step for feature implementation is for people to experiment with the
95+
An important step for RFC implementation is for people to experiment with the
7896
implementation and give feedback, especially before stabilization.
7997

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

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-
<!--
100102
* *No calls for testing were issued this week by
101103
[Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
102104
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
103105
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
104106
[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).*
110107

111108
[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.
123109

124110
## Call for Participation; projects and speakers
125111

@@ -144,13 +130,78 @@ If you are a Rust project owner and are looking for contributors, please submit
144130
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.
145131

146132
<!-- 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.* -->
133+
*No Calls for papers or presentations were submitted this week.*
148134

149135
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)!
150136

151137
## Updates from the Rust Project
152138

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

155206
### Rust Compiler Performance Triage
156207

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

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-
-->
234+
* *No RFCs were approved this week.*
192235

193236
### Final Comment Period
194237

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

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-
203241
#### 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-
209242
##### [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)
243+
* [Allow &raw `[mut | const]` for union field in safe code](https://github.com/rust-lang/rust/pull/141469)
244+
* [Deny-by-default never type lints](https://github.com/rust-lang/rust/pull/146167)
245+
* [Opportunistically split `!=` to successfully parse never type](https://github.com/rust-lang/rust/pull/145536)
246+
* [Allow specifying multiple bounds for same associated item, except in trait objects](https://github.com/rust-lang/rust/pull/146593)
247+
* [rustdoc: hide `#[repr]` if it isn't part of the public ABI](https://github.com/rust-lang/rust/pull/116882)
248+
249+
*No Items entered Final Comment Period this week for
250+
[Rust RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period),
251+
[Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
252+
[Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+),
253+
[Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
254+
[Leadership Council](https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period) or
255+
[Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc).*
256+
257+
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
218258

219259
#### [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] []() -->
260+
* [RFC: `#[cfg(since(rust, "1.95"))]` for Rust-version conditional compilation](https://github.com/rust-lang/rfcs/pull/3857)
261+
* [Mitigation enforcement](https://github.com/rust-lang/rfcs/pull/3855)
262+
* [RFC for `#[stable(since)]`](https://github.com/rust-lang/rfcs/pull/3854)
224263

225264
## Upcoming Events
226265

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

345384
# Quote of the Week
346385

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

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

0 commit comments

Comments
 (0)