|
| 1 | +Title: This Week in Rust 420 |
| 2 | +Number: 420 |
| 3 | +Date: 2021-12-08 |
| 4 | +Category: This Week in Rust |
| 5 | + |
| 6 | +Hello and welcome to another issue of *This Week in Rust*! |
| 7 | +[Rust](http://rust-lang.org) is a programming language empowering everyone to build reliable and efficient software. |
| 8 | +This is a weekly summary of its progress and community. |
| 9 | +Want something mentioned? Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) or [send us a pull request](https://github.com/rust-lang/this-week-in-rust). |
| 10 | +Want to get involved? [We love contributions](https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md). |
| 11 | + |
| 12 | +*This Week in Rust* is openly developed [on GitHub](https://github.com/rust-lang/this-week-in-rust). |
| 13 | +If you find any errors in this week's issue, [please submit a PR](https://github.com/rust-lang/this-week-in-rust/pulls). |
| 14 | + |
| 15 | +## Updates from Rust Community |
| 16 | + |
| 17 | +### Official |
| 18 | +* [Announcing Rust 1.57.0](https://blog.rust-lang.org/2021/12/02/Rust-1.57.0.html) |
| 19 | + |
| 20 | +### Foundation |
| 21 | +* [Love for Rust at re:Invent](https://foundation.rust-lang.org/posts/2021-12-06-love-for-rust-at-reinvent/) |
| 22 | + |
| 23 | +### Project/Tooling Updates |
| 24 | +* [Updates in IntelliJ Rust for 2021.3](https://blog.jetbrains.com/rust/2021/12/06/updates-in-intellij-rust-for-2021-3/) |
| 25 | +* [Rust Analyzer Changelog #106](https://rust-analyzer.github.io/thisweek/2021/12/06/changelog-106.html) |
| 26 | +* [cloud-hypervisor v20.0](https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v20.0) |
| 27 | +* [SixtyFPS (GUI crate): Changelog for 5th of December 2021](https://sixtyfps.io/thisweek/2021-12-06.html) |
| 28 | +* [This Month in Rust OSDev (November 2021)](https://rust-osdev.com/this-month/2021-11/) |
| 29 | +* [GCC Rust Monthly Report #12 November 2021](https://thephilbert.io/2021/12/06/gcc-rust-monthly-report-12-november-2021/) |
| 30 | +* [rustc_codegen_gcc: Progress Report #6](https://blog.antoyo.xyz/rustc_codegen_gcc-progress-report-6) |
| 31 | +* [Arti 0.0.2 is released: API groundwork, refactoring, config, and optimism](https://forum.torproject.net/t/arti-0-0-2-is-released-api-groundwork-refactoring-config-and-optimism/939) |
| 32 | +* [Rust takes a major step forward as Linux's second official language](https://www.zdnet.com/article/rust-takes-a-major-step-forward-as-linuxs-second-official-language/) |
| 33 | +* [Updated Rust Code For Linux Kernel Patches Posted](https://www.phoronix.com/scan.php?page=news_item&px=Rust-For-Linux-v2) |
| 34 | +* [xmake v2.6.1 released, Switch to Lua5.4 runtime, Support Rust and Cplusplus mixed compilation](https://github.com/xmake-io/xmake/wiki/xmake-v2.6.1-released,-Switch-to-Lua5.4-runtime,-Support-Rust-and-Cplusplus-mixed-compilation) |
| 35 | +* [Announcing Sycamore v0.7.0: Client-side hydration + Builder API](https://sycamore-rs.netlify.app/news/announcing-v0.7.0) |
| 36 | +* [Nushell 0.41](https://www.nushell.sh/blog/2021-12-07-nushell_0_41.html) |
| 37 | +* [DE] [WebAssembly: Wasmer 2.1 ermöglicht das Ausführen von Rust-Projekten im Browser](https://www.heise.de/news/WebAssembly-Wasmer-2-1-ermoeglicht-das-Ausfuehren-von-Rust-Projekten-im-Browser-6283513.html) |
| 38 | +* [DE] [Programmiersprache: Rust 1.57 – Don't Panic!](https://www.heise.de/news/Programmiersprache-Rust-1-57-Don-t-Panic-6283665.html) |
| 39 | + |
| 40 | +### Observations/Thoughts |
| 41 | +* [Uninit read/write](https://blog.yoshuawuyts.com/uninit-read-write/) |
| 42 | +* [Portable and interoperable async Rust](https://www.ncameron.org/blog/portable-and-interoperable-async-rust/) |
| 43 | +* [Speedrunning GUI development in Rust](https://aaronerhardt.github.io/blog/posts/gui_speedrun/) |
| 44 | +* [My Cryptography Final Project](https://codegito.xyz/2021/12/05/cryptography-final-project/) |
| 45 | +* [Case study: Rust programming language community](https://zulip.com/case-studies/rust/) |
| 46 | +* [Linear Types Can Help](https://aidancully.blogspot.com/2021/12/linear-types-can-help.html) |
| 47 | +* [video] [On Hubris and Humility: developing an OS for robustness in Rust](https://talks.osfc.io/osfc2021/talk/JTWYEH/) [text version](https://cliffle.com/blog/on-hubris-and-humility/) |
| 48 | + |
| 49 | +### Rust Walkthroughs |
| 50 | +* [How to encrypt a file in Rust (Using streaming AEAD encryption)](https://kerkour.com/rust-file-encryption) |
| 51 | +* [Getting Started with Rust on a Raspberry Pi Pico (Part 3)](https://reltech.substack.com/p/getting-started-with-rust-on-a-raspberry-a88) |
| 52 | +* [A better cargo-readme - Issue 0: Humble Beginning](https://scrabsha.github.io/abcr-issue-0/) |
| 53 | +* [How to Overriding (Patch) Cargo Dependencies](https://edger.substack.com/p/how-to-overriding-patch-cargo-dependencies) |
| 54 | +* [Higher Kinded Types in Rust](https://hugopeters.me/posts/14/) |
| 55 | +* [Node to Rust: Day 1 - From nvm to rustup](https://vino.dev/blog/node-to-rust-day-1-rustup/) |
| 56 | +* [Creating a Web Page with Actix-Web (Rust)](https://dev.to/michaelin007/creating-a-web-page-with-actix-web-rust--2agd) |
| 57 | +* [video] [rg3d - live game development #2](https://www.youtube.com/watch?v=TQaCyC_tGko) |
| 58 | +* [video] [1Password Developer Fireside Chat: Ownership & Mutability Patterns in Rust](https://www.youtube.com/watch?v=hJ9IO-nYpjs) |
| 59 | +* [video] [series] [Advent of Code in Rust by Lucille Blumire](https://www.youtube.com/channel/UCevTibyeBGT1ybiGzROnsfw) |
| 60 | +* [video] [series] [Solving Advent of Code 2021 in Rust by Yoshua Wuyts](https://www.youtube.com/playlist?list=PL2F_NKy2ueKOpAVPl-c3szUXuwB7K9sDq) |
| 61 | +* [video] [series] [Writing a Programming Language (in Rust) 9: Implementing Value References](https://www.youtube.com/watch?v=pgD7m02-XnI) |
| 62 | + |
| 63 | +### Miscellaneous |
| 64 | +* [Live Coder Jon Gjengset Gets into the Nitty-Gritty of Rust](https://nostarch.com/blog/jon-gjengset-talks-rust) |
| 65 | +* [AWS SDK for Rust (Developer Preview)](https://aws.amazon.com/about-aws/whats-new/2021/12/aws-sdk-rust-developer-preview/) |
| 66 | +* [BR-pt] [Esta Semana em Rust #419](https://github.com/luisvonmuller/Esta-Semana-Em-Rust/blob/main/%23419.md) |
| 67 | + |
| 68 | +## Crate of the Week |
| 69 | + |
| 70 | +This week's crate is [tap](https://crates.io/crates/tap), a library with extension traits to provide suffix-position pipeline behavior. |
| 71 | + |
| 72 | +Thanks to [David Mason](https://users.rust-lang.org/t/crate-of-the-week/2704/988) for the suggestion! |
| 73 | + |
| 74 | +[Please submit your suggestions and votes for next week][submit_crate]! |
| 75 | + |
| 76 | +[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704 |
| 77 | + |
| 78 | +## Call for Participation |
| 79 | + |
| 80 | +Always wanted to contribute to open-source projects but didn't know where to start? |
| 81 | +Every week we highlight some tasks from the Rust community for you to pick and get started! |
| 82 | + |
| 83 | +Some of these tasks may also have mentors available, visit the task page for more information. |
| 84 | + |
| 85 | +If you are a Rust project owner and are looking for contributors, please submit tasks [here][guidelines]. |
| 86 | + |
| 87 | +[guidelines]: https://users.rust-lang.org/t/twir-call-for-participation/4821 |
| 88 | + |
| 89 | +## Updates from the Rust Project |
| 90 | + |
| 91 | +286 pull requests were [merged in the last week][merged] |
| 92 | + |
| 93 | +[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2021-11-29..2021-12-06 |
| 94 | + |
| 95 | +* [Optimize `rustc_lexer`](https://github.com/rust-lang/rust/pull/91393) |
| 96 | +* [Add support for LLVM coverage mapping format versions 5 and 6](https://github.com/rust-lang/rust/pull/91207) |
| 97 | +* [Add support for riscv64gc-unknown-freebsd](https://github.com/rust-lang/rust/pull/91284) |
| 98 | +* [Fix ICE in `check_must_not_suspend_ty()`](https://github.com/rust-lang/rust/pull/91367) |
| 99 | +* [Fix ICE when `yield`ing in function returning `impl Trait`](https://github.com/rust-lang/rust/pull/91488) |
| 100 | +* [Don't suggest types whose inner type is erroneous](https://github.com/rust-lang/rust/pull/91450) |
| 101 | +* [Only show notable traits if both types are the same](https://github.com/rust-lang/rust/pull/91366) |
| 102 | +* [Improve diagnostic for missing half of binary operator in `if` condition](https://github.com/rust-lang/rust/pull/91435) |
| 103 | +* [Improve error message for `E0659` if the source is not available](https://github.com/rust-lang/rust/pull/91298) |
| 104 | +* [Improve error message for incorrect field accesses through raw pointers](https://github.com/rust-lang/rust/pull/91364) |
| 105 | +* [Add `Option::inspect` and `Result::{inspect, inspect_err}`](https://github.com/rust-lang/rust/pull/91346) |
| 106 | +* [Add a `try_reduce` method to the `Iterator` trait](https://github.com/rust-lang/rust/pull/87054) |
| 107 | +* [Add slice `take` methods](https://github.com/rust-lang/rust/pull/88502) |
| 108 | +* [Make `array::`{`try_from_fn`, `try_map`} and `Iterator::try_find` generic over `Try`](https://github.com/rust-lang/rust/pull/91286) |
| 109 | +* [Introduce `RawVec::reserve_for_push`](https://github.com/rust-lang/rust/pull/91352) |
| 110 | +* [Implement `VecDeque::retain_mut`](https://github.com/rust-lang/rust/pull/91215) |
| 111 | +* [libc: Define `max_align_t` for wasi](https://github.com/rust-lang/libc/pull/2577) |
| 112 | +* [portable-simd: Generic `core::ops` for `Simd<T, _>`](https://github.com/rust-lang/portable-simd/pull/195) |
| 113 | +* [cargo: Stabilize `future-incompat-report`](https://github.com/rust-lang/cargo/pull/10165) |
| 114 | +* [cargo: Support abbreviating `--release` as `-r`](https://github.com/rust-lang/cargo/pull/10133) |
| 115 | +* [clippy: Consider `NonNull` as a pointer type](https://github.com/rust-lang/rust-clippy/pull/8074) |
| 116 | +* [clippy: Escape backslash in `single_char_pattern.rs`](https://github.com/rust-lang/rust-clippy/pull/8067) |
| 117 | +* [clippy: Fix `any()` not taking reference in `search_is_some` lint](https://github.com/rust-lang/rust-clippy/pull/7463) |
| 118 | +* [clippy: Fix some false negatives for `single_char_pattern`](https://github.com/rust-lang/rust-clippy/pull/8077) |
| 119 | +* [clippy: Parenthesize blocks in `needless_bool` suggestion](https://github.com/rust-lang/rust-clippy/pull/8066) |
| 120 | +* [clippy: Upgrade `map_flatten` to complexity](https://github.com/rust-lang/rust-clippy/pull/8054) |
| 121 | +* [rustfmt: Determine when new comment lines are needed for itemized blocks](https://github.com/rust-lang/rustfmt/pull/5097) |
| 122 | + |
| 123 | +### Rust Compiler Performance Triage |
| 124 | + |
| 125 | +A week of mostly rather small changes with many regressions being hard to diagnose. The largest regression comes from the introduction of a new future (desugaring `.await` into a call to `IntoFuture::into_future`). This was deemed acceptable as it only seems to have a negative impact in stress test situations where async/await is used more than one would normally expect. Unfortunately this does mean regressions beat out improvements this week. |
| 126 | + |
| 127 | +Triage done by **@rylev**. |
| 128 | +Revision range: [1c0287..ecb65b](https://perf.rust-lang.org/?start=1c0287830e0fb3c4007afea2819ba03766da6e9c&end=ecb65b0e170fc5275870c9d0fba7267a57cf35e5&absolute=false&stat=instructions%3Au) |
| 129 | + |
| 130 | +3 Regressions, 5 Improvements, 5 Mixed; 3 of them in rollups |
| 131 | +31 comparisons made in total |
| 132 | + |
| 133 | +[Full report here](https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-12-07.md) |
| 134 | + |
| 135 | +### [Approved RFCs](https://github.com/rust-lang/rfcs/commits/master) |
| 136 | + |
| 137 | +Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These |
| 138 | +are the RFCs that were approved for implementation this week: |
| 139 | + |
| 140 | +* [Static async fn in traits](https://github.com/rust-lang/rfcs/commit/69833de7b46a571c6110c9ffc0796aeabde335ff) |
| 141 | + |
| 142 | +### Final Comment Period |
| 143 | + |
| 144 | +Every week [the team](https://www.rust-lang.org/team.html) announces the |
| 145 | +'final comment period' for RFCs and key PRs which are reaching a |
| 146 | +decision. Express your opinions now. |
| 147 | + |
| 148 | +#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period) |
| 149 | + |
| 150 | +* *No RFCs entered final comment period this week.* |
| 151 | + |
| 152 | +#### [Tracking Issues & PRs](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc) |
| 153 | + |
| 154 | +* [disposition: merge] [Relax priv-in-pub lint on generic bounds and where clauses of trait impls.](https://github.com/rust-lang/rust/pull/90586) |
| 155 | + |
| 156 | +### [New RFCs](https://github.com/rust-lang/rfcs/pulls) |
| 157 | + |
| 158 | +* [RFC: Alignment niches for references types.](https://github.com/rust-lang/rfcs/pull/3204) |
| 159 | + |
| 160 | +## Upcoming Events |
| 161 | + |
| 162 | +Rusty Events between 12/01-12/15 🦀 |
| 163 | + |
| 164 | +### Online |
| 165 | + |
| 166 | +* [December 3, 2021 | New York City, NY, US | **Getting started in aerospace with Rust 🦀** | NewSpace NYC](https://www.meetup.com/NewSpace-NYC/events/282320805). |
| 167 | +* [December 7, 2021 | Berlin, DE | **Rust Hack and Learn** | Berline.rs, a Berlin-local Rust community](https://berline.rs/2021/12/07/rust-hack-and-learn.html) |
| 168 | +* [December 7, 2021 | Buffalo, NY, US | **First Tuesdays: Buffalo Rust User Group** | Buffalo Rust Meetup](https://www.meetup.com/Buffalo-Rust-Meetup/events/281833990/) |
| 169 | +* [December 7, 2021 | South Padre Island, TX, US | **Tuesdays - Book #24 - Rust for Rustaceans - Chapter 1** | Los Gatos Reading Group (South Padre Island)](https://www.meetup.com/the-south-padre-island-reading-group/events/281685234/) |
| 170 | +* [December 8, 2021 | Los Angeles, CA, US | **Introduction to Photogrammetry with Geordon Worley [Virtual] Dec. 2021** | Rust Los Angeles](https://www.meetup.com/Rust-Los-Angeles/events/281944671) |
| 171 | +* [December 8, 2021 | Los Angeles, CA, US | **Rust Computer Vision Project with Geordon Worley** | Rust Los Angeles](https://www.meetup.com/Rust-Los-Angeles/events/281944671/) |
| 172 | +* [December 8, 2021 | Stuttgart, DE | **Rust-Meetup** | Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/events/282009864) |
| 173 | +* [December 9, 2021 | Columbus, OH, US | **Second Thursdays: Monthly Meetup** | Columbus Rust Society](https://www.meetup.com/columbus-rs/events/dpkhgryccqbmb/) |
| 174 | +* [December 9, 2021 | London, UK | **Rust London x TrueLayer Takeover & Christmas Party** | Rust London User Group](https://www.meetup.com/Rust-London-User-Group/events/282343516/) |
| 175 | +* [December 9, 2021 | Oslo, NO | **Rust Oslo @ Rebel w/Carol (Nichols || Goulding)**| Rust Oslo](https://www.meetup.com/Rust-Oslo/events/281877640/) |
| 176 | +* [December 9, 2021 | San Diego, CA, US | **San Diego Rust December 2021 Tele-Meetup** | San Diego Rust](https://www.meetup.com/San-Diego-Rust/events/282433355) |
| 177 | +* [December 10, 2021 | Chicago, IL, US | **8LU Keynote by Eric Smith - Write Your Game in Rust!** | 8th Light University](https://www.meetup.com/8th-light-university/events/282381279) |
| 178 | +* [December 11, 2021 | Nairobi, KE | **Rust Catchup 2021** | Rust Nairobi](https://www.meetup.com/Rust-Nairobi/events/282377713/) |
| 179 | +* [December 13, 2021 | Eugene, OR, US | **Mondays - Book-Club - Rust Programming Language** | Functional Programming - Eugene](https://www.meetup.com/fp-eug/events/282533185) |
| 180 | +* [December 14, 2021 | South Padre Island, TX, US | **Tuesdays - Book #24 - Rust for Rustaceans - Chapter 1 (session 2)** | Los Gatos Reading Group (South Padre Island)](https://www.meetup.com/the-south-padre-island-reading-group/events/282555459/) |
| 181 | +* [December 14, 2021 | Seattle, WA, US | **Monthly Meetup** | Seattle Rust Meetup](https://www.meetup.com/Seattle-Rust-Meetup/events/281875277) |
| 182 | + |
| 183 | +### North America |
| 184 | + |
| 185 | +* [December 14, 2021 | Minneapolis, MN, US | **First Meetup** | Minneapolis Rust Meetup Group](https://www.meetup.com/minneapolis-rust-meetup-group/events/282526064/) |
| 186 | +* [December 14, 2021 | New York, NY, US | **Presentation by Chelsea E. Manning: Rust on Arduino-style microcontrollers** | Rust NYC](https://www.meetup.com/Rust-NYC/events/282478738/) |
| 187 | + |
| 188 | + |
| 189 | +### Europe |
| 190 | + |
| 191 | +* [December 3, 2021 | Moscow, RU | **Rust Con** | RustCon.ru](https://rustcon.ru) |
| 192 | +* [December 9, 2021 | London, UK | **Rust London x TrueLayer Takeover & Christmas Party** | Rust London User Group](https://www.meetup.com/Rust-London-User-Group/events/282343516/) |
| 193 | + |
| 194 | +If you are running a Rust event please add it to the [calendar] to get |
| 195 | +it mentioned here. Please remember to add a link to the event too. |
| 196 | +Email the [Rust Community Team][community] for access. |
| 197 | + |
| 198 | +[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com |
| 199 | +[community]: mailto:[email protected] |
| 200 | + |
| 201 | +# Rust Jobs |
| 202 | + |
| 203 | +**DeepSource** |
| 204 | + |
| 205 | +* [Software Engineer, Static Analysis - Rust (Bangalore, India)](https://careers.deepsource.io/o/software-engineer-static-analysis-rust) |
| 206 | + |
| 207 | +**Clear** |
| 208 | + |
| 209 | +* [Full Stack Developer (Remote)](https://docs.google.com/document/d/1OuG5Ts_6s4eWO6CXGzcbklOweD7qGnOgADnSoPjEa10/edit) |
| 210 | + |
| 211 | +**Pixy** |
| 212 | + |
| 213 | +* [Rust Developer Position](https://www.bigeyestudios.com/job-board) |
| 214 | + |
| 215 | +**Bionaut Labs** |
| 216 | + |
| 217 | +* [Embedded Software Engineer (Senior) (Los Angeles, CA, US)](https://www.indeed.com/viewjob?jk=775772a2587b4a1e) |
| 218 | +* [Embedded Software Engineer (Junior) (Los Angeles, CA, US)](https://www.indeed.com/viewjob?jk=030a274941d1f7ac) |
| 219 | + |
| 220 | +**Metawork** |
| 221 | + |
| 222 | +* [Infrastructure Engineer (Remote US)](https://jobs.ashbyhq.com/metawork/51d61a87-d4b8-4ed2-a49b-abb4b2247b30) |
| 223 | +* [Platform Engineer (Remote US)](https://jobs.ashbyhq.com/metawork/90575f85-de36-461e-a540-fbee126ad186) |
| 224 | + |
| 225 | +*Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!* |
| 226 | + |
| 227 | +# Quote of the Week |
| 228 | + |
| 229 | +> v2 of the patch-series "to add support for Rust as a second language to the Linux kernel" was posted to LKML \[..\] |
| 230 | +> |
| 231 | +> There have been several improvements to the overall Rust support since RFC and v2 described in the linked mail. |
| 232 | +
|
| 233 | +– [Thorsten Leemhuis on twitter](https://twitter.com/kernellogger/status/1467874273582886921?s=20) |
| 234 | + |
| 235 | +llogiq unanimously suggested and voted that this be our quote for this week. |
| 236 | + |
| 237 | +[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328) |
| 238 | + |
| 239 | +*This Week in Rust is edited by: [nellshamrell](https://github.com/nellshamrell), [llogiq](https://github.com/llogiq), [cdmistman](https://github.com/cdmistman), [ericseppanen](https://github.com/ericseppanen), [extrawurst](https://github.com/extrawurst), [andrewpollack](https://github.com/andrewpollack), [U007D](https://github.com/U007D), [kolharsam](https://github.com/kolharsam), [joelmarcey](https://github.com/joelmarcey), [mariannegoldin](https://github.com/mariannegoldin).* |
| 240 | + |
| 241 | +*Email list hosting is sponsored by [The Rust Foundation](https://foundation.rust-lang.org/)* |
| 242 | + |
| 243 | +<small>[Discuss on r/rust](https://www.reddit.com/r/rust/comments/rc84ta/this_week_in_rust_420/)</small> |
0 commit comments