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.
This Week in Rust is openly developed on GitHub. If you find any errors in this week's issue, please submit a PR.
Updates from Rust Community
News & Blog Posts
- Upcoming docs.rs changes.
- GitHub Actions for Rust.
- Rustconf 2019 videos.
- Improved C variadics in Rust and C2Rust.
- Oreboot: Coreboot minus C, a talk by Google.
- Announcing awesome-rust-mentors.
- Adventures in motion control.
Crate of the Week
This week's crate is texture-synthesis, a program to generate textures by choosing examples.
Thanks to Willi Kappler for the suggestion!
Submit your suggestions and votes for next week!
Call for Participation
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.
- Rustup needs your help (testing a new feature).
- Rustup needs your help (testing a new feature, part two).
- Notify: Looking for maintainers. Notify is a cross-platform filesystem notification library for Rust.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
282 pull requests were merged in the last week
- rustc: Allow the cdylib crate type with wasm32-wasi
- Hide diagnostics emitted during --cfg parsing
- Improve hygiene of
alloc::format!
- Cleanup handling of hygiene for built-in macros
- resolve: Tweak some "cannot find" wording for macros
- Provide a span if main function is not present in crate
- def_collector: Do not ICE on attributes on unnamed fields
- Permit impls referencing errors to overlap
- lowering: Extend temporary lifetimes around await
- Shrink
ObligationCauseCode
- check_match: Refactor + improve non-exhaustive diagnostics for default binding modes
- fn ptr is structural match
- rustc_mir: Buffer -Zdump-mir output instead of pestering the kernel constantly
- std: Add a
backtrace
module - Stabilize
Vec::new
andString::new
asconst fn
s - Stabilise weak_ptr_eq
- Make
abs
,wrapping_abs
,overflowing_abs
const functions - Use
try_fold
instead of manually carrying an accumulator - Improve
BTreeSet::Intersection::size_hint
- cargo: Don't build libstd as a
dylib
- rustup: Update to most recent viable nightly
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation 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.
RFCs
- [disposition: merge]
#[cfg(accessible(..) / version(..))]
. - [disposition: postpone] Cargo versioning.
Tracking Issues & PRs
- [disposition: merge] Stabilize
str::len
,[T]::len
andstr::as_bytes
as const fn. - [disposition: merge] Stabilize
param_attrs
in Rust 1.39.0. - [disposition: close] Expose Linux syscall interface.
New RFCs
No new RFCs were proposed this week.
Upcoming Events
Online
Africa
Asia Pacific
- Sep 21. Chennai, IN - Rust Chennai - Monthly meetup.
- Sep 25. Hangzhou, CN - Rust in Blockchain Hangzhou - In Rust We Trust.
- Sep 28. Taipei, TW - Rust Taiwan Meetup.
Europe
- Sep 23. Oslo, NO - Rust Oslo - Hack & Learn.
- Sep 24. London, GB - Rust London User Group - LDN Talks September 2019.
- Sep 25. Milano, IT - Rust Language Milano - Virtual Filesystem with Rust.
- Sep 25. Copenhagen, DK - Copenhagen Rust Hack Night #18.
- Sep 26. Turin, IT - Mozilla Torino - Gruppo di studio Rust.
- Oct 1. Göteborg, SE - Rust Gbg — Golden October Rust 2019.
- Oct 2. Berlin, DE - OpenTechSchool Berlin - Rust Hack and Learn.
- Oct 3. Toulouse, FR - Rust talks at DevFest Toulouse 2019.
- Oct 4. Toulouse, FR - Toulouse Rust Meetup - Future.
North America
- Sep 20-21. Denver, CO, US - Colorado Gold Rust.
- Sep 23. Durham, NC, US - Triangle Rustaceans - Project Night & Lightning Talks.
- Sep 24. Dallas, TX, US - Dallas Rust - Last Tuesday.
- Sep 25. Chicago, IL, US - Chicago Rust Meetup - Wait, why does Rust have 4 string types.
- Sep 25. Ann Arbor, MI, US - Ann Arbor Rust Meetup - Monthly Gathering.
- Sep 25. Mesa, AZ, US - Desert Rust - Rust: Web assembly.
- Sep 26. New York, NY - Local Native: A Decentralized Cross-platform App Developed with Rust.
- Oct 1. Toronto, ON, CA - Rust Toronto - Rust for the Web.
- Oct 2. Indianapolis, IN, US - Indy.rs.
- Oct 2. Vancouver, BC, CA - Vancouver Rust meetup.
- Oct 2. Boston, MA, US - Boston Rust Meetup at VMware.
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 for access.
Rust Jobs
- 2D Graphics Programmer at Dungeonfog, Vienna, AT (Remote available).
- Principal Software Engineer at Microsoft, Redmond, WA, US.
- Multiple Rust positions at Parity, Berlin, DE (Remote available).
- Software Engineer at 3DSignals, Kfar Saba, IL.
- Senior Engineer at Ditto at San Francisco, US (Remote available).
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Well, let me tell you: unless your code is cooler than ICE, the compiler does not miss anything. Rust accompanies us at each step of our path, very gently pulling our hand when we are too close to falling onto a (safety) hole, and also very gently letting us fall all the way down the hole, as soon we spell the forbidden incantation:
unsafe
.
Thanks to Cerberuser for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.