@@ -34,21 +34,30 @@ and just ask the editors to select the category.
3434### Foundation
3535
3636### Newsletters
37+ * [ The Embedded Rustacean Issue #42 ] ( https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-42 )
3738
3839### Project/Tooling Updates
40+ * [ EtherCrab, the pure Rust EtherCAT MainDevice, version 0.6 released] ( https://wapl.es/ethercrab-0-6/ )
41+ * [ A process for handling Rust code in the core kernel] ( https://lwn.net/SubscriberLink/1015409/be9d004a43a7102d/ )
42+ * [ api-version: axum middleware for header based version selection] ( https://heikoseeberger.de/2025-03-20-api-version/ )
3943
4044### Observations/Thoughts
4145
4246### Rust Walkthroughs
47+ * [ Solving the ABA Problem in Rust with Hazard Pointers] ( https://minikin.me/blog/solving-the-aba-problem-in-rust-hazard-pointers )
48+ * [ Building a CoAP application on Ariel OS] ( https://christian.amsuess.com/blog/website/2025-03-27_ariel_coap/ )
4349
4450### Research
4551
4652### Miscellaneous
53+ * [ Real-World Verification of Software for Cryptographic Applications] ( https://cryptographycaffe.sandboxaq.com/posts/real-world-verification-of-software-for-cryptographic-applications/ )
4754* [ Public mdBooks] ( https://mdbooks.code-maven.com/ )
48-
55+
4956## Crate of the Week
5057
51- <!-- COTW goes here -->
58+ This week's crate is [ candystore] ( https://docs.rs/candystore/latest/candystore/ ) , a fast, persistent key-value store that does not require LSM or WALs.
59+
60+ Thanks to [ Tomer Filiba] ( https://users.rust-lang.org/t/crate-of-the-week/2704/1424 ) for the self-suggestion!
5261
5362[ Please submit your suggestions and votes for next week] [ submit_crate ] !
5463
@@ -107,11 +116,76 @@ If you are an event organizer hoping to expand the reach of your event, please s
107116
108117## Updates from the Rust Project
109118
110- <!-- Rust updates go here -->
119+ 438 pull requests were [ merged in the last week] [ merged ]
120+
121+ [ merged ] : https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-03-25..2025-04-01
122+
123+ #### Compiler
124+
125+ * [ allow defining opaques in statics and consts] ( https://github.com/rust-lang/rust/pull/138911 )
126+ * [ avoid wrapping constant allocations in packed structs when not necessary] ( https://github.com/rust-lang/rust/pull/138503 )
127+ * [ perform less decoding if it has the same syntax context] ( https://github.com/rust-lang/rust/pull/129827 )
128+ * [ stabilize ` precise_capturing_in_traits ` ] ( https://github.com/rust-lang/rust/pull/138128 )
129+ * [ uplift ` clippy::invalid_null_ptr_usage ` lint as ` invalid_null_arguments ` ] ( https://github.com/rust-lang/rust/pull/119220 )
130+
131+ #### Library
132+
133+ * [ allow spawning threads after TLS destruction] ( https://github.com/rust-lang/rust/pull/138702 )
134+ * [ override PartialOrd methods for bool] ( https://github.com/rust-lang/rust/pull/138945 )
135+ * [ simplify expansion for ` format_args!() ` ] ( https://github.com/rust-lang/rust/pull/139131 )
136+ * [ stabilize ` const_cell ` ] ( https://github.com/rust-lang/rust/pull/137928 )
137+
138+ #### Rustdoc
139+
140+ * [ greatly simplify doctest parsing and information extraction] ( https://github.com/rust-lang/rust/pull/138104 )
141+ * [ rearrange ` Item ` /` ItemInner ` ] ( https://github.com/rust-lang/rust/pull/138927 )
142+
143+ #### Clippy
144+
145+ * [ new lint: ` char_indices_as_byte_indices ` ] ( https://github.com/rust-lang/rust-clippy/pull/13435 )
146+ * [ add ` manual_dangling_ptr ` lint] ( https://github.com/rust-lang/rust-clippy/pull/14107 )
147+ * [ respect ` #[expect] ` and ` #[allow] ` within function bodies for ` missing_panics_doc ` ] ( https://github.com/rust-lang/rust-clippy/pull/14407 )
148+ * [ do not make incomplete or invalid suggestions] ( https://github.com/rust-lang/rust-clippy/pull/14487 )
149+ * [ do not warn about shadowing in a destructuring assigment] ( https://github.com/rust-lang/rust-clippy/pull/14381 )
150+ * [ expand ` obfuscated_if_else ` to support ` {then(), then_some()}.unwrap_or_default() ` ] ( https://github.com/rust-lang/rust-clippy/pull/14431 )
151+ * [ fix the primary span of ` redundant_pub_crate ` when flagging nameless items] ( https://github.com/rust-lang/rust-clippy/pull/14516 )
152+ * [ fix ` option_if_let_else ` suggestion when coercion requires explicit cast] ( https://github.com/rust-lang/rust-clippy/pull/14389 )
153+ * [ fix ` unnested_or_patterns ` suggestion in ` let ` ] ( https://github.com/rust-lang/rust-clippy/pull/14401 )
154+ * [ make ` collapsible_if ` recognize the ` let_chains ` feature] ( https://github.com/rust-lang/rust-clippy/pull/14481 )
155+ * [ make ` missing_const_for_fn ` operate on non-optimized MIR] ( https://github.com/rust-lang/rust-clippy/pull/14003 )
156+ * [ more natural suggestions for ` cmp_owned ` ] ( https://github.com/rust-lang/rust-clippy/pull/14247 )
157+ * [ ` collapsible_if ` : prevent including preceeding whitespaces if line contains non blanks] ( https://github.com/rust-lang/rust-clippy/pull/14480 )
158+ * [ properly handle expansion in ` single_match ` ] ( https://github.com/rust-lang/rust-clippy/pull/14495 )
159+ * [ validate paths in ` disallowed_* ` configurations] ( https://github.com/rust-lang/rust-clippy/pull/14397 )
160+
161+ #### Rust-Analyzer
162+
163+ * [ allow crate authors to control completion of their things] ( https://github.com/rust-lang/rust-analyzer/pull/19375 )
164+ * [ avoid relying on ` block_def_map() ` needlessly] ( https://github.com/rust-lang/rust-analyzer/pull/19492 )
165+ * [ fix debug sourceFileMap when using cppvsdbg] ( https://github.com/rust-lang/rust-analyzer/pull/19475 )
166+ * [ fix ` format_args ` lowering using wrong integer suffix] ( https://github.com/rust-lang/rust-analyzer/pull/19460 )
167+ * [ fix a bug in orphan rules calculation] ( https://github.com/rust-lang/rust-analyzer/pull/19466 )
168+ * [ fix panic in progress due to splitting unicode incorrectly] ( https://github.com/rust-lang/rust-analyzer/pull/19490 )
169+ * [ use medium durability for crate-graph changes, high for library source files] ( https://github.com/rust-lang/rust-analyzer/pull/19451 )
111170
112171### Rust Compiler Performance Triage
113172
114- <!-- Perf results go here -->
173+ Positive week, with a lot of primary improvements and just a few secondary regressions. Single big regression got reverted.
174+
175+ Triage done by ** @panstromek ** .
176+ Revision range: [ 4510e86a..2ea33b59] ( https://perf.rust-lang.org/?start=4510e86a41388733675465a8647d4235f3bf2023&end=2ea33b591050c4ca1a3752830b29112638faecf6&absolute=false&stat=instructions%3Au )
177+
178+ ** Summary** :
179+
180+ | (instructions: u ) | mean | range | count |
181+ | :----------------------------------:| :-----:| :--------------:| :-----:|
182+ | Regressions ❌ <br /> (primary) | - | - | 0 |
183+ | Regressions ❌ <br /> (secondary) | 0.9% | [ 0.2%, 1.5%] | 17 |
184+ | Improvements ✅ <br /> (primary) | -0.4% | [ -4.5%, -0.1%] | 136 |
185+ | Improvements ✅ <br /> (secondary) | -0.6% | [ -3.2%, -0.1%] | 59 |
186+ | All ❌✅ (primary) | -0.4% | [ -4.5%, -0.1%] | 136 |
187+
188+ [ Full report here] ( https://github.com/rust-lang/rustc-perf/blob/9bd6fc2f4594023b82acd8d876dcf659aee9a931/triage/2025-03-31.md ) .
115189
116190### [ Approved RFCs] ( https://github.com/rust-lang/rfcs/commits/master )
117191
@@ -304,7 +378,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
304378
305379# Quote of the Week
306380
307- <!-- QOTW goes here -->
381+ > If you write a bug in your Rust program, Rust doesn’t blame you. Rust asks “how could the compiler have spotted that bug”.
382+
383+ – [ Ian Jackson blogging about Rust] ( https://diziet.dreamwidth.org/19480.html )
384+
385+ Despite a lack of suggestions, llogiq is quite pleased with his choice.
308386
309387[ Please submit quotes and vote for next week!] ( https://users.rust-lang.org/t/twir-quote-of-the-week/328 )
310388
0 commit comments