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
- The Rust compiler is still getting faster.
- Unsafe as a human-assisted type system.
- Why does the Rust compiler not optimize code assuming that two mutable references cannot alias?
- Python vs Rust for neural networks.
- Dependency management and trust scaling.
Crate of the Week
This week's crate is async-trait, a procedural macro to allow async fn
s in trait methods.
Thanks to Ehsan M. Kermani 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.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
324 pull requests were merged in the last week
- Add support for UWP targets
- Add
riscv32i-unknown-none-elf
target - Update wasm32 support for LLVM 9
- Move unescape module to rustc_lexer
- Make the parser TokenStream more resilient after mismatched delimiter recovery
- Improve diagnostics for _ const/static declarations
- Avoid ICE when referencing desugared local binding in borrow error
- Suggest trait bound on type parameter when it is unconstrained
- Allow lifetime elision in
Pin<&(mut) Self>
- Stop bare trait lint applying to macro call sites
- Add note suggesting to borrow a String argument to find
- Add method disambiguation help for trait implementation
- miri: Enable Intrptrcast by default
- Don't access a static just for its size and alignment
- Use const array repeat expressions for
uninit_array
- Stabilize the
type_name
intrinsic incore::any
- Constantly improve the
Vec
(Deque
) arrayPartialEq
impls - hashbrown: Do not grow the container if an insertion is on a tombstone
- rust-bindgen: Cleanup
wchar_t
layout computation to happen later - rustdoc: Make
#[doc(include)]
relative to the containing file - docs.rs: Fix weird layout workflow issues on firefox
- Force clippy to run every time (finally!)
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
No new RFCs were proposed this week.
Tracking Issues & PRs
- [disposition: merge] Stabilize checked_duration_since for 1.38.0.
- [disposition: merge] Stabilize duration_float.
- [disposition: merge] Implement DoubleEndedIterator for iter::{StepBy, Peekable, Take.
- [disposition: merge] Give built-in macros stable addresses in the standard library.
- [disposition: merge] Add a few trait impls for AccessError.
New RFCs
Upcoming Events
Africa
Asia Pacific
- Aug 5. Auckland, NZ - Rust AKL August - Rust usage in Firefox.
- Aug 10. Singapore, SG - Rust Meetup.
- Aug 17. Taipei, TW - "Everything in Rust" at COSCUP 2019.
Europe
- Aug 4. St. Petersburg, RU - St. Petersburg Rust Meetup.
- Aug 7. Erlangen, DE - Rust Franken Meetup #1.
- Aug 7. Berlin, DE - OpenTechSchool Berlin - Rust Hack and Learn.
North America
- Aug 7. Portland, OR, US - PDXRust - Trees = Boxes + Enums + Iterators.
- Aug 7. Vancouver, BC, CA - Vancouver Rust meetup.
- Aug 7. Atlanta, GA, US - Grab a beer with fellow Rustaceans.
- Aug 7. Indianapolis, IN, US - Indy.rs.
- Aug 8. San Diego, CA, US - San Diego Rust August Meetup.
- Aug 8. Columbus, OH, US - Columbus Rust Society - Monthly Meeting.
- Aug 8. Arlington, VA, US - Rust DC — Mid-month Rustful.
- Aug 13. Toronto, ON, CA - Rust Toronto - Toronto Rustaceans Tech and Talk.
- Aug 13. Denver, CO, US - Rust Boulder/Denver - Hack 'N Snack.
- Aug 13. Seattle, WA, US - Seattle Rust Meetup - Monthly meetup.
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
- Senior Platform Engineer - Layout as Mozilla, Portland, US.
- Senior Software Engineer at ConsenSys R&D, Remote.
- Rust Developer at Finhaven, Vancouver, CA.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Rust clearly popularized the ownership model, with similar implementations being considered in D, Swift and other languages. This is great news for both performance and memory safety in general.
Also let's not forget that Rust is not the endgame. Someone may at one point find or invent a language that will offer an even better position in the safety-performance-ergonomics space. We should be careful not to get too attached to Rust, lest we stand in progress' way.
Thanks to Vikrant for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.