Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.
Check out this week's This Week in Rust Podcast
Updates from Rust Community
News & Blog Posts
- Announcing Rust 1.44.0
- RustConf 2020 Registration is Open
- Enumerating monitors in Rust using Win32 API
- Rust cli app integrated with slack
- Hack week: miniCouchDB in Rust
- Zero To Production #1: toolchains, IDEs, CI
- From Rust to Svelte, what tech stack will I use
- Graph & Tree Traversals in Rust
- Programming languages: Rust enters top 20 popularity rankings for the first time
- A Rust SentencePiece implementation
- Rust Things I Miss in C
- So What's Up with Microsoft's (and Everyone Else's) Love of Rust?
- Why the developers who use Rust love it so much
- The Story of Tail Call Optimizations in Rust
- Taking the Unhappy Path with Result, Option, unwrap and ? operator in Rust
- This Month in Rust OSDev (May 2020)
- This Month in Rust GameDev #10 - May 2020
- This month in rustsim #11 (April - May 2020)
- Rust in Blockchain Newsletter #12 - ZK-Rustups
- Memory-Safety Challenge Considered Solved? An Empirical Study with All Rust CVEs
- Creating Your Own Programming Language with Rust
- rust-analyzer changelog #28
- Getting started with Rust/WinRT
- [Chinese] Simple sorting algorithms in Rust
- [Indonesian] Berbagai alasan melakukan Programming dalam Rust
- [slides] Rust in 15 Minutes
- [video] Rust Web development | Boilerplate free with Rocket
- [video] Educational Rust Live Coding - Building a web app - Part 4
- [video] Iterators - Rust
- [video] Browser computation with WebAssembly Live Stream
- [video] Jonathan Teaches Jason Rust!
Crate of the Week
This week's crate is cargo-spellcheck, a cargo subcommand to spell-check your docs.
Thanks to Bernhard Schuster for the suggestion!
Call for Participation
- maud: Add an on-by-default "unstable" feature
- maud: Change all uses of Span::def_site to Span::mixed_site
- maud: Document "Allow arbitrary attribute syntax in class and ID names"
- maud: Migrate to the third-party
Always wanted to contribute to open-source projects but didn't 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.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
350 pull requests were merged in the last week
- InstCombine: don't optimize
-Z span-debugto allow for easier debugging of proc macros
- avoid setting wrong obligation cause span of associated type mismatch
- be more careful around
- fulfill: try using
impl AsRef<[T]> for vec::IntoIter<T>
- chalk: get ready for the first publish
- add associated consts
- de-promote Duration::from_secs
- compiler-builtins: manually patch ret instruction for LVI
- cargo: add environment variables to identify the binary and crate name
- cargo: allow Windows dylibs without dll suffix
- cargo: better error message when passing in relative path to
- cargo: don't hash executable filenames on apple platforms
- cargo: support
- cargo: warn if using hash in git URL
- cargo: reset lockfile information between resolutions
- crates.io: fix issue where crates.io allowed the plus sign in crate names
- docs.rs: print a backtrace for crates which fail to build
- rustfmt: pick up comments between visibility modifier and item name
- rustfmt: preserve Markdown line breaks in inner and outer block doc comments
- rustfmt: use rewrite buffer to determine if comment should be on a newline
- rustfmt: feat: conditionally allow unstable opts on stable/beta
Rust Compiler Performance Triage
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
No RFCs were approved this week.
Final Comment Period
Every week the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
No RFCs are currently in the final comment period.
- [disposition: merge]
impl ToSocketAddrs for (String, u16)
- [disposition: merge] Stabilize
- [disposition: merge] Stabilize
- [disposition: merge] Add raw_ref macros
- [disposition: merge] Print environment variables accessed by rustc as special comments into depinfo files
No new RFCs were proposed this week.
- June 10. Wroclaw, PL - Remote - Rust Wroclaw Meetup #20
- June 11. Berlin, DE - Remote - Rust Hack and Learn
- June 11. San Diego, CA, US - Remote - San Diego Rust Meetup
- June 18. Zurich, CH - Remote - Embedded Rust Update: probe.rs
- June 18. Turin, IT - Remote - Rust Turin Study Group
- June 11. Columbus, OH, US - Columbus Rust Society Monthly Meeting
- June 11. Lehi, UT, US - Utah Rust - Lightning Talks
- June 17. Vancouver, BC, CA - Vancouver Rust - Rust Study/Hack/Hang-out night
- June 18. Durham, NC - Triangle Rustaceans - Project Night & Lightning Talks
- Pop! OS Software Engineer at System76, Remote US-based
- Software Engineer at Vehicle.Software (second listing on page)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
You don't declare lifetimes. Lifetimes come from the shape of your code, so to change what the lifetimes are, you must change the shape of the code.
Thanks to RustyYato for the suggestions!