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.
Updates from Rust Community
News & Blog Posts
- Understanding the difference between
impl Trait, and
- varkor joins the Compiler Team!
- First screenshot of Dota2 running on gfx-portabilty with Metal backend.
- Actix – an actor framework for Rust.
- Migrating to Actix from Rocket.
- A Rust-based unikernel: First version of a Rust-based libOS.
- Where do Rust threads come from?
- To do a Rust GUI.
- Integrating QML and Rust: Creating a QMetaObject at compile time.
- crates.rs: An alternative to crates.io.
- nphysics: A Physics engine in Rust now has 3D demos running in modern browsers.
- [podcast] Rusty Spike Podcast - episode 32. 1.26.2 release, the arch (video and site), compiler speed-ups, crates.rs, and more thoughts on the Rust design process.
Crate of the 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.
- Sponsor work on Rust!
- wasm-pack has several open good first issues available to new contributors.
- Get started with these beginner-friendly issues.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
110 pull requests were merged in the last week
- Keyword unreservations (pure, sizeof, alignof, offsetof) (RFC #2421)
- parser: split
+is explicitly requested (such as generics)
- enable fall through past $:lifetime matcher
#[cfg_attr]on generic parameters
- include parens to type parameter
- use scope tree depths to speed up
- avoid useless Vec clones in
- NLL performance boost
- NLL: report type moved from behind borrow of array/slice
- deduplicate auto traits in trait objects
- remove dependency on fmt_macros from typeck
- re-enable trivial bounds
- use spans pointing at the inside of a rustdoc attribute
- suggest parentheses when a struct literal needs them
- suggest not mutably borrowing a mutable reference
- add deprecation lint for duplicated
..in incorrect position to avoid further errors
- fix the use of closures within
- refactor the const eval diagnostic API
- check array indices in constant propagation
ScalarPairsare offset==0 field + other non-zst field
- blocking Rayon queries
Futureand task system to the standard library
- futures: add a few blanket impls to
- fix confusing error message for sub_instant
- stabilize unit tests with non-
- cargo: allow rustc bootstrap to use unstable features even though it's using a beta-cargo
- fix crate-name option in rustdoc
- rustbuild: allow enabling incremental via config.toml
- rustbuild: do not require stage 2 compiler for rustdoc
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.
- [disposition: close] Reserve
failas keywords in edition 2018.
- [disposition: merge] Exhaustive integer matching.
- [disposition: merge] Stabilize
- [disposition: merge] Add ability to apply custom derive to union types.
- [disposition: merge] Tracking issue for
- [disposition: merge] Tracking issue for "macro naming and modularisation" (RFC #1561).
- [disposition: merge] Tracking issue for promoting
!to a type (RFC 1216).
- Jun 19. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org.
- Jun 20. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Jun 20. Rust Events Team Meeting.
- Jun 27. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Jun 21. Cambridge, GB - Cambridge Rust Meetup.
- Jun 27. Berlin, DE - OpenTechSchool - Rust Hack and Learn.
- Jun 14. Columbus, US - Columbus Rust Society - Monthly Meeting.
- Jun 14. San Diego, US - San Diego Rust June Meetup.
- Jun 14. Utah Valley, US - Utah Rust meetup.
- Jun 14. Arlington, US - Rust DC - Mid-month Rustful.
- Jun 17. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Jun 19. Denver, US - Rust Boulder/Denver - June Meetup in Boulder.
- Jun 19. Kitchener, CA - Graph Mining in Rust & Your Project Demos.
- Jun 24. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Jun 26. Dallas, US - Last Tuesday Meetup.
- Jun 26. New York City, US - Procedural Macros - parse JSX using nom.
- Jun 27. Vancouver, CA - Rust Study/Hack/Hang-out night.
- Jun 28. San Francisco, US - Rust Bay Area - Zero Knowledge Proof Macros and Cernan (data pipelining).
- Aug 17. Portland, US - RustConf 2018. Registration is now open.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
explicit lifetimes no longer scare me the way they used to.
– Nicholas Nethercote on his blog
(selected by llogiq per one unanimous vote)