this-week-in-rust/content/2023-04-12-this-week-in-rus...

354 lines
26 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Title: This Week in Rust 490
Number: 490
Date: 2023-04-12
Category: This Week in Rust
Hello and welcome to another issue of *This Week in Rust*!
[Rust](https://www.rust-lang.org/) is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) on Twitter or [@ThisWeekinRust](https://mastodon.social/@thisweekinrust) on mastodon.social, or [send us a pull request](https://github.com/rust-lang/this-week-in-rust).
Want to get involved? [We love contributions](https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md).
*This Week in Rust* is openly developed [on GitHub](https://github.com/rust-lang/this-week-in-rust).
If you find any errors in this week's issue, [please submit a PR](https://github.com/rust-lang/this-week-in-rust/pulls).
## Updates from Rust Community
<!--
Dear community contributors:
Please read README.md for guidance on submissions.
Each submitted link should be of the form:
* [Title of the Linked Page](https://example.com/my_article)
If you don't know which category to use, feel free to submit a PR anyway
and just ask the editors to select the category.
-->
### Official
* [A note on the Trademark Policy Draft](https://blog.rust-lang.org/inside-rust/2023/04/12/trademark-policy-draft-feedback.html)
### Newsletters
* [Community contribution to Fluvio by Carson Rajcan](https://www.fluvio.io/news/this-week-in-fluvio-0051/)
### Project/Tooling Updates
* [rust-analyzer changelog #176](https://rust-analyzer.github.io/thisweek/2023/04/10/changelog-176.html)
* [New in IntelliJ Rust for 2023.1 (Part 1)](https://blog.jetbrains.com/rust/2023/04/11/new-in-intellij-rust-for-2023-1-part-1/)
* [IntelliJ Rust Changelog #192](https://intellij-rust.github.io/2023/04/11/changelog-192.html)
* [sequence_align: an open-source Python + Rust toolkit for efficient sequence alignment](https://blog.kensho.com/introducing-sequence-align-an-open-source-python-rust-toolkit-for-efficient-sequence-alignment-ccdce71d04c7)
* [Dozer Exiting Stealth Mode with v0.1.16 Release](https://getdozer.io/blog/2023/04/11/this-week-4)
* [plrust - v1.0.0](https://github.com/tcdi/plrust/releases/tag/v1.0.0)
* [cdrs-tokio - 8.0.0](https://github.com/krojew/cdrs-tokio/releases/tag/8.0.0)
* [logos - v0.13](https://github.com/maciejhirsz/logos/releases/tag/v0.13)
* [This Month in Rust OSDev: March 2023](https://rust-osdev.com/this-month/2023-03/)
* [This Month in hyper: March 2023](https://seanmonstar.com/post/713948439199858688/this-month-in-hyper-march-2023)
* [GCC Front-End For Rust - March 2023](https://rust-gcc.github.io/2023/04/03/2023-03-monthly-report.html)
### Observations/Thoughts
* [How Kani helped find bugs in Hifitime](https://model-checking.github.io/kani-verifier-blog/2023/03/31/how-kani-helped-find-bugs-in-hifitime.html)
* [Build faster with Buck2: Our open source build system](https://engineering.fb.com/2023/04/06/open-source/buck2-open-source-large-scale-build-system/)
* [Modular Errors in Rust](https://sabrinajewson.org/blog/errors)
* [How fast can you count to 16 in Rust?](https://www.bazhenov.me/posts/counting-to-16-in-rust/)
* [Can You Trust a Compiler to Optimize Your Code?](https://matklad.github.io/2023/04/09/can-you-trust-a-compiler-to-optimize-your-code.html)
* [The Scoped Task trilemma](https://without.boats/blog/the-scoped-task-trilemma/)
* [Restructuring Patterns](https://www.catmonad.xyz/blog/nibbles_02.html)
* [Control flow patterns in Rust](https://symbolica.io/posts/control_flow_patterns/)
* [Eight million pixels and counting Custom allocators in Rust](https://nical.github.io/posts/rust-custom-allocators.html)
* [Using Metal and Rust to make FFT even faster](https://www.notamonadtutorial.com/using-metal-and-rust-to-make-fft-even-faster/)
* [video] [Solving distributed systems challenges in Rust](https://www.youtube.com/watch?v=gboGyccRVXI)
### Rust Walkthroughs
* [Writing a Fast C# Code-Search Tool in Rust](https://johnaustin.io/articles/2022/blazing-fast-structural-search-for-c-sharp-in-rust)
* [Understanding tracing's macros by rebuilding them from scratch](https://dietcode.io/p/tracing-macros)
* [A guide to aid you in your journey of becoming a Rustacean](https://rust-lang.guide/)
* [Flexible Tracing with Rust and OpenTelemetry](https://broch.tech/posts/rust-tracing-opentelemetry/)
* [Build a Ray Tracer, pt. 3 - Let There Be Light!](https://www.superperfundo.dev/articles/ray-tracer-part3)
* [Nine Rules for Creating Fast, Safe, and Compatible Data Structures in Rust (Part 2)](https://towardsdatascience.com/nine-rules-for-creating-fast-safe-and-compatible-data-structures-in-rust-part-2-da5e6961a0b7)
* [How to write a type-level mock library in Rust](https://audunhalland.github.io/blog/how-to-write-a-type-level-mock-library-in-rust/)
* [video] [Rust Axum Full Course - Web Development](https://www.youtube.com/watch?v=XZtlD_m59sM)
* [video] [Introduction to Rust Programming language](https://www.youtube.com/watch?v=9ziaSnqL8RY)
### Miscellaneous
* [CfP for EuroRust 2023 now open](https://www.papercall.io/eurorust-2023)
* [video] [The Rust Project visualized with Gource](https://www.youtube.com/watch?v=Ds0Psk1YmOc)
## Crate of the Week
This week's crate is [spacedisplay](https://github.com/funbiscuit/spacedisplay-rs), a small terminal app for analyzing used disk space.
Thanks to [Sviatoslav Kokurin](https://users.rust-lang.org/t/crate-of-the-week/2704/1183) for the suggestion!
[Please submit your suggestions and votes for next week][submit_crate]!
[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704
## Call for Participation
Always wanted to contribute to open-source projects but did not know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
* [rustc - help migrating to `derive(Diagnostic)` / struct-based diagnostics](https://rust-lang.zulipchat.com/#narrow/stream/328238-RustcContributor.3A.3Anew/topic/Diagnostics.20Translation) ([rust#100717](https://github.com/rust-lang/rust/issues/100717))
* [Hyperswitch - Return all the `missing_fields` in a request](https://github.com/juspay/hyperswitch/issues/451)
* [Hyperswitch - perf(logger): Remove unnecessary heap allocations](https://github.com/juspay/hyperswitch/issues/117)
* [Hyperswitch - Have `get_required_value` to use `ValidationError` in `OptionExt`](https://github.com/juspay/hyperswitch/issues/860)
* [Hyperswitch - RFC for optimizing compile time.](https://github.com/juspay/hyperswitch/issues/809)
* [rusticify - Add tagging/untagging for documents](https://github.com/StaffEngineer/rusticify/issues/6)
* [rusticify - Add search by document name / tags](https://github.com/StaffEngineer/rusticify/issues/7)
* [Ockam - Rename ockam forwarder clap commands to ockam relay](https://github.com/build-trust/ockam/issues/4609)
* [Ockam - Add default value to --project-route argument on kafka's service start clap commands](https://github.com/build-trust/ockam/issues/4615)
* [Ockam - Combine ip and port arguments into a single dynamic argument on kafka's service start clap commands](https://github.com/build-trust/ockam/issues/4614)
If you are a Rust project owner and are looking for contributors, please submit tasks [here][guidelines].
[guidelines]: https://users.rust-lang.org/t/twir-call-for-participation/4821
## Updates from the Rust Project
385 pull requests were [merged in the last week][merged]
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-04-03..2023-04-10
* [migrate `rustc_macros` to syn 2.0](https://github.com/rust-lang/rust/pull/109663)
* [add ability to transmute (somewhat) with generic consts in arrays](https://github.com/rust-lang/rust/pull/106281)
* [allow `transmute`s to produce `OperandValue`s instead of needing `alloca`s](https://github.com/rust-lang/rust/pull/109843)
* [resolve: restore some effective visibility optimizations](https://github.com/rust-lang/rust/pull/109437)
* [better diagnostic when pattern matching tuple structs](https://github.com/rust-lang/rust/pull/109760)
* [check pattern refutability on THIR](https://github.com/rust-lang/rust/pull/108504)
* [diagnostics: account for glob shadowing when linting redundant imports](https://github.com/rust-lang/rust/pull/109599)
* [diagnostics: account for self type when looking for source of unsolved type variable](https://github.com/rust-lang/rust/pull/109957)
* [do not suppress `temporary_cstring_as_ptr` in macros](https://github.com/rust-lang/rust/pull/109944)
* [don't ICE when encountering `dyn*` in statics or consts](https://github.com/rust-lang/rust/pull/109921)
* [emit feature error for parenthesized generics in associated type bounds](https://github.com/rust-lang/rust/pull/109914)
* [extend `-Cdebuginfo` with new options and named aliases](https://github.com/rust-lang/rust/pull/109808)
* [fix `non_exhaustive_omitted_patterns` lint span](https://github.com/rust-lang/rust/pull/109838)
* [fix a couple ICEs in the new `CastKind::Transmute` code](https://github.com/rust-lang/rust/pull/110021)
* [fix buffer overrun in bootstrap and (test-only) `symlink_junction`](https://github.com/rust-lang/rust/pull/109960)
* [fix issue when there are multiple candidates for `edit_distance_with_substrings`](https://github.com/rust-lang/rust/pull/109395)
* [implement support for `GeneratorWitnessMIR` in new solver](https://github.com/rust-lang/rust/pull/109755)
* [more descriptive error when qself path doesnt have a trait on the RHS of `as`](https://github.com/rust-lang/rust/pull/109788)
* [never consider int and float vars for `FnPtr` candidates](https://github.com/rust-lang/rust/pull/109896)
* [only visit reachable blocks in ConstProp lint](https://github.com/rust-lang/rust/pull/109792)
* [prioritize param env candidates if they don't guide type inference](https://github.com/rust-lang/rust/pull/109724)
* [pull some tuple variant fields out into their own `struct`](https://github.com/rust-lang/rust/pull/109723)
* [remove the use of `-use-gnu-stack` when BOLTing LLVM](https://github.com/rust-lang/rust/pull/109945)
* [suggest defining const parameter when appropriate](https://github.com/rust-lang/rust/pull/110041)
* [tweak debug outputs to make debugging new solver easier](https://github.com/rust-lang/rust/pull/109956)
* [tweak tuple indexing suggestion](https://github.com/rust-lang/rust/pull/110096)
* [use SipHash-1-3 instead of SipHash-2-4 for StableHasher](https://github.com/rust-lang/rust/pull/107925)
* [yeet `owning_ref`](https://github.com/rust-lang/rust/pull/109971)
* [stabilize `is_some_and`](https://github.com/rust-lang/rust/pull/110019)
* [cargo: add `try_canonicalize` and use it over `std::fs::canonicalize`](https://github.com/rust-lang/cargo/pull/11866)
* [cargo: fix Cargo warning about unused sparse configuration key](https://github.com/rust-lang/cargo/pull/11930)
* [cargo: fix credential token format validation](https://github.com/rust-lang/cargo/pull/11951)
* [cargo: validate token on publish](https://github.com/rust-lang/cargo/pull/11952)
* [rustdoc: avoid including line numbers in Google SERP snippets](https://github.com/rust-lang/rust/pull/109977)
* [rustdoc: escape GAT args in more cases](https://github.com/rust-lang/rust/pull/109919)
* [rustdoc: make intra-doc link pass non-quadratic for repeated links](https://github.com/rust-lang/rust/pull/109876)
* [clippy: `needless_return`: do not trigger on ambiguous match arms return](https://github.com/rust-lang/rust-clippy/pull/10593)
* [clippy: add `manual_slice_size_calculation`](https://github.com/rust-lang/rust-clippy/pull/10601)
* [clippy: add `tests_outside_test_module` lint](https://github.com/rust-lang/rust-clippy/pull/10543)
* [clippy: new lint: `suspicious_doc_comments`](https://github.com/rust-lang/rust-clippy/pull/10497)
* [clippy: fix `mem_replace_option_with_none` not considering field variables](https://github.com/rust-lang/rust-clippy/pull/10594)
* [clippy: fix `single_component_path_imports` false positive on `self::<import>::..`](https://github.com/rust-lang/rust-clippy/pull/10566)
* [clippy: fix bug with getting parent directories in `lookup_conf_file`](https://github.com/rust-lang/rust-clippy/pull/10592)
* [clippy: make `redundant_async_block` a more complete late pass](https://github.com/rust-lang/rust-clippy/pull/10554)
* [clippy: mini-fix `double_must_use` for async functions](https://github.com/rust-lang/rust-clippy/pull/10589)
* [rust-analyzer: highlight escapes in char](https://github.com/rust-lang/rust-analyzer/pull/14512)
* [rust-analyzer: compute closure captures](https://github.com/rust-lang/rust-analyzer/pull/14470)
* [rust-analyzer: desugar async fn completely](https://github.com/rust-lang/rust-analyzer/pull/14486)
* [rust-analyzer: add doc-alias based completion](https://github.com/rust-lang/rust-analyzer/pull/14433)
* [rust-analyzer: convert nested function to closure assist](https://github.com/rust-lang/rust-analyzer/pull/14455)
* [rust-analyzer: drop support for non-syroot proc macro ABIs](https://github.com/rust-lang/rust-analyzer/pull/14432)
* [rust-analyzer: assist: autoderef in generate delegate methods](https://github.com/rust-lang/rust-analyzer/pull/14483)
* [rust-analyzer: fix block local impl trait solving regressions](https://github.com/rust-lang/rust-analyzer/pull/14505)
* [rust-analyzer: fix vscode project linking popup buttons being swapped](https://github.com/rust-lang/rust-analyzer/pull/14481)
* [rust-analyzer: insert whitespace between text and pound](https://github.com/rust-lang/rust-analyzer/pull/14493)
* [rust-analyzer: unify types in `infer_expr_coerce_never()`](https://github.com/rust-lang/rust-analyzer/pull/14520)
* [rust-analyzer: normalize associated types in paths in expressions](https://github.com/rust-lang/rust-analyzer/pull/14436)
### [Approved RFCs](https://github.com/rust-lang/rfcs/commits/master)
Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These
are the RFCs that were approved for implementation this week:
* *No RFCs were approved this week.*
### Final Comment Period
Every week, [the team](https://www.rust-lang.org/team.html) announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
* *No RFCs entered Final Comment Period this week.*
#### [Tracking Issues & PRs](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
* [disposition: merge] [Evaluate place expression in `PlaceMention`](https://github.com/rust-lang/rust/pull/104844)
### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
* [new] [Casting From by as_cast](https://github.com/rust-lang/rfcs/pull/3413)
* [new] [Proposal: add range value type and range value conversions between different ranges.](https://github.com/rust-lang/rfcs/pull/3412)
* [new] [Explicit move binding mode](https://github.com/rust-lang/rfcs/pull/3410)
* [new] [Guaranteed TCO (tail call optimization)](https://github.com/rust-lang/rfcs/pull/3407)
### [Call for Testing](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing)
An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization. The following
RFCs would benefit from user testing before moving forward:
* *No RFCs issued a call for testing this week.*
If you are a feature implementer and would like your RFC to appear on the above list, add the new `call-for-testing`
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.
## Upcoming Events
Rusty Events between 2023-04-12 - 2023-05-10 🦀
### Virtual
* 2023-04-12 | Virtual (Boulder, CO, US) | [Boulder Elixir and Rust](https://www.meetup.com/boulder-elixir-rust/)
* [**Monthly Meetup**](https://www.meetup.com/boulder-elixir-rust/events/zvxcsryfcgbqb/)
* 2023-04-12 | Virtual (Cardiff, UK) | [Rust and C++ Cardiff](https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/)
* [**Rust Atomics and Locks Book Club Launch!**](https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/292410256/)
* 2023-04-13 | Virtual (Charlottesville, VA, US) | [Charlottesville Rust Meetup](https://www.meetup.com/charlottesville-rust-meetup/)
* [**Learning Rust By Building Small CLI Tools!**](https://www.meetup.com/charlottesville-rust-meetup/events/292674779/)
* 2023-04-13 | Virtual (Lehi, UT, US) | [Utah Rust](https://www.meetup.com/utah-rust/)
* [**Casual Spring Day**](https://www.meetup.com/utah-rust/events/292813786/)
* 2023-04-13 | Virtual (Nürnberg, DE) | [Rust Nuremberg](https://www.meetup.com/rust-noris/)
* [**Rust Nürnberg online**](https://www.meetup.com/rust-noris/events/hlvbvsyfcgbrb/)
* 2023-04-15 | Virtual (Bangalore, IN) | [Rust India](https://hasgeek.com/rustlangin)
* [**Rust India monthly meetup**](https://hasgeek.com/rustlangin/april-2023-rustacean-meetup/)
* 2023-04-17 | Virtual (Richmond, VA, US) | [Rustaceans RVA](https://www.meetup.com/rustaceans-rva/)
* [**April Meetup**](https://www.meetup.com/rustaceans-rva/events/292712141/)
* 2023-04-18 | Virtual (Washington, DC, US) | [Rust DC](https://www.meetup.com/rustdc/)
* [**Mid-month Rustful—Introducing duplicate! and the peculiarities of proc macros**](https://www.meetup.com/rustdc/events/291830834/)
* 2023-04-19 | Virtual (Vancouver, BC, CA) | [Vancouver Rust](https://www.meetup.com/vancouver-rust/-0)
* [**Rust Study/Hack/Hang-out**](https://www.meetup.com/vancouver-rust/events/lqkkctyfcgbzb/)
* 2023-04-20 | Virtual (Munich, DE) | [Rust Munich](https://www.meetup.com/rust-munich/)
* [**Rust Munich 2023 / 2 - hybrid**](https://www.meetup.com/rust-munich/events/291965920/)
* 2023-04-20 | Virtual (Stuttgart, DE) | [Rust Community Stuttgart](https://www.meetup.com/rust-community-stuttgart)
* [**Rust-Meetup**](https://www.meetup.com/rust-community-stuttgart/events/qtvtvsyfcgbbc/)
* 2023-04-25 | Virtual (Dallas, TX, US) | [Dallas Rust](https://www.meetup.com/dallas-rust/)
* [**Last Tuesday**](https://www.meetup.com/dallas-rust/events/qndgwsyfcgbhc/)
* 2023-04-26 | Virtual (Cardiff, UK) | [Rust and C++ Cardiff](https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/)
* [**Rust-friendly websites and web apps**](https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/292559177/)
* 2023-04-27 | Virtual (Charlottesville, VA, US) | [Charlottesville Rust Meetup](https://www.meetup.com/charlottesville-rust-meetup/)
* [**Testing Tock, how unit tests in Rust improve and teach**](https://www.meetup.com/charlottesville-rust-meetup/events/292193436/)
* 2023-04-29 | Virtual (Nürnberg, DE) | [Rust Nuremberg](https://www.meetup.com/rust-noris/)
* [**Deep Dive Session 3: Protohackers Exercises Mob Coding (as far as we get)**](https://www.meetup.com/rust-noris/events/292149688/)
* 2023-05-02 | Virtual (Buffalo, NY, US) | [Buffalo Rust Meetup](https://www.meetup.com/buffalo-rust-meetup/)
* [**Buffalo Rust User Group, First Tuesdays**](https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfchbdb/)
* 2023-05-03 | Virtual (Indianapolis, IN, US) | [Indy Rust](https://www.meetup.com/indyrs)
* [**Indy.rs - with Social Distancing**](https://www.meetup.com/indyrs/events/qwtdjsyfchbfb/)
### Asia
* 2023-04-12 | Kuala Lumpur, MY | [Rust Malaysia](https://rust-malaysia.github.io/meetup/); [Telegram](https://t.me/golangmalaysia)
* [**Rust Meetup Malaysia April 2023: How far is Dioxus from React? by Ivan Tham**](https://www.google.com/calendar/event?eid=MWI0bWJzY21qZTI2NWsyZDgzOG0xb2JkdTkgYXBkOXZtYmMyMmVnZW5tdHU1bDZjNWpiZmNAZw&ctz=America/Los_Angeles) | [Map](https://goo.gl/maps/w2ogftac6mqpBbvt5)
* 2023-04-18 | Tokyo, JP | [Tokyo Rust Meetup](https://www.meetup.com/tokyo-rust-meetup)
* [**Rewriting Relay's GraphQL Compiler in Rust**](https://www.meetup.com/tokyo-rust-meetup/events/292549607/)
### Europe
* 2023-04-13 | Roma, IT | [Rust Roma](https://www.meetup.com/rust-roma/)
* [**Rules engine: from good to awesome (and beyond) with Rust**](https://www.meetup.com/rust-roma/events/292684621/)
* 2023-04-13 | Wrocław, PL | [Rust Wrocław](https://www.meetup.com/rust-wroclaw/)
* [**Rust Wrocław Meetup #33**](https://www.meetup.com/rust-wroclaw/events/292581415/)
* 2023-04-18 | Montpellier, FR | [Montpellier Rust Meetup](https://www.meetup.com/montpellier-rust-meetup/)
* [**Meetup Rust Avril 2023**](https://www.meetup.com/montpellier-rust-meetup/events/292805853/)
* 2023-04-19 | Paris, FR | [Rust Paris](https://www.meetup.com/rust-paris/)
* [**Rust Paris meetup #58**](https://www.meetup.com/rust-paris/events/292575461/)
* 2023-04-19 | Trondheim, NO | [Rust Trondheim](https://www.meetup.com/rust-trondheim/)
* [**Rust Embedded with MicroBit:V2**](https://www.meetup.com/rust-trondheim/events/292680021/)
* 2023-04-19 | Zurich, CH | [Rust Zurich](https://www.meetup.com/de-DE/rust-zurich/)
* [**sett: data encryption and transfer made easy(ier)**](https://www.meetup.com/de-DE/rust-zurich/events/292151879/)
* 2023-04-20 | Aarhus, DK | [Rust Aarhus](https://www.meetup.com/rust-aarhus/)
* [**Rust Aarhus meetup #1 at Geanix**](https://www.meetup.com/rust-aarhus/events/292185072/)
* 2023-04-20 | Munich, DE + Virtual | [Rust Munich](https://www.meetup.com/rust-munich/)
* [**Rust Munich 2023 / 2 - hybrid**](https://www.meetup.com/rust-munich/events/291965920/)
* 2023-04-20 | Bern, CH | [Rust Bern](https://www.meetup.com/de-DE/rust-bern/)
* [**First Rust Bern Meetup!**](https://www.meetup.com/de-DE/rust-bern/events/292206056/)
* 2023-04-21 | Stuttgart, DE | [Rust Community Stuttgart](https://www.meetup.com/rust-community-stuttgart)
* [**OnSite Meeting**](https://www.meetup.com/rust-community-stuttgart/events/pdhvctyfcgbcc/)
* 2023-04-26 | London, UK | [Rust London User Group](https://www.meetup.com/rust-london-user-group/)
* [**Rust Hack & Learn April 2023**](https://www.meetup.com/rust-london-user-group/events/292729308/)
* 2023-04-27 | Vienna, AT | [Rust Vienna](https://www.meetup.com/rust-vienna)
* [**Rust Vienna - April - Hosted by Sentry**](https://www.meetup.com/rust-vienna/events/292751465/)
* 2023-05-02 | Amsterdam, NL | [Rust Developers Amsterdam Group](https://www.meetup.com/rust-amsterdam-group/)
* [**Fiberplane Rust Workshop**](https://www.meetup.com/rust-amsterdam-group/events/292297784/)
* 2023-05-10 | Amsterdam, NL | [RustNL](https://rustnl.org/)
* [**RustNL 2023**](https://2023.rustnl.org/)
### North America
* 2023-04-13 | Lehi, UT, US + Virtual | [Utah Rust](https://www.meetup.com/utah-rust/)
* [**Casual Spring Day**](https://www.meetup.com/utah-rust/events/292813786/)
* 2023-04-13 | New York, NY, US | [Rust NYC](https://www.meetup.com/rust-nyc/)
* [**Autometrics: Easily add metrics in Rust and understand them in Prometheus**](https://www.meetup.com/rust-nyc/events/292430796/)
* 2023-04-18 | San Francisco, CA, US | [San Francisco Rust Study Group](https://www.meetup.com/san-francisco-rust-study-group/)
* [**Rust Hacking in Person**](https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfcgbxb/)
* 2023-04-19 | Austin, TX, US | [Rust ATX](https://www.meetup.com/rust-atx/)
* [**Rust Lunch**](https://www.meetup.com/rust-atx/events/292749528/)
* 2023-04-19 | Minneapolis, MN, US | [Minneapolis Rust Meetup](https://www.meetup.com/minneapolis-rust-meetup/)
* [**Happy Hour and Beginner WASM Rust Hacking Session (#2!)**](https://www.meetup.com/minneapolis-rust-meetup/events/292814034/)
* 2023-04-20 | Mountain View, CA, US | [Mountain View Rust Study Group](https://www.meetup.com/rust-study-group/)
* [**Rust Meetup at Hacker Dojo**](https://www.meetup.com/rust-study-group/events/292694348/)
* 2023-04-29 | Durham, NC, US | [Triangle Rust](https://www.meetup.com/triangle-rust/)
* [**Rust Social / Coffee Chat at Boxyard RTP**](https://www.meetup.com/triangle-rust/events/292833711/)
### Oceania
* 2023-04-13 | Sydney, NSW, AU | [Rust Sydney](https://www.meetup.com/rust-sydney/)
* [**🦀 Lightning Talks - 🐰 April Thingy 😊**](https://www.meetup.com/rust-sydney/events/292163549/)
If you are running a Rust event please add it to the [calendar] to get
it mentioned here. Please remember to add a link to the event too.
Email the [Rust Community Team][community] for access.
[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com
[community]: mailto:community-team@rust-lang.org
## Jobs
<!--
Rust Jobs:
TWiR has stopped featuring individual job postings. You can read more about this change here:
https://github.com/rust-lang/this-week-in-rust/issues/3412
-->
Please see the latest [Who's Hiring thread on r/rust](https://www.reddit.com/r/rust/comments/11naac9/official_rrust_whos_hiring_thread_for_jobseekers/)
# Quote of the Week
> As an expert at being ignorant of what `Pin` does, I can assert with expertise that other ignorant readers have a hard time with `Pin`.
[grom on rust-users](https://users.rust-lang.org/t/pin-tutorial-are-confusing-me/91003/3)
Thanks to [bugaevc](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1393) for the suggestion!
[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)
*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), [bennyvasquez](https://github.com/bennyvasquez).*
*Email list hosting is sponsored by [The Rust Foundation](https://foundation.rust-lang.org/)*
<small>[Discuss on r/rust](https://www.reddit.com/r/rust/comments/12k4rxc/this_week_in_rust_490/)</small>