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
- What is Rust 2018?
- Announcing the js-sys crate.
- Learn how to build OpenGL renderer with Rust.
- A snapshot of Rust's popularity in July 2018.
- Pointers are complicated, or: What's in a byte?
- Version selection in Cargo.
- A "rustup target" example: Using a Mac to cross-compile Linux binaries.
- Rust concurrency patterns: Natural born pipelines.
- Build a sequence-based recommender system in Rust.
- Programming Servo: How to match.
- My experience with the Rust 2018 preview.
- Writing a front-end WebAssembly framework in Rust: lessons learned.
- 2018 edition end of week post (2018-07-27).
- The Embedded WG newsletter 8.
- Rust 2018 release schedule and extended beta.
Crate of the Week
This week's crate is Taizen, a wikipedia browser for your terminal. Thanks to nasa42 for 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.
- Help test out the 2018 module system changes.
- exercism.io needs Rust mentors.
- jsonwebtoken: Add ES* family.
- 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
158 pull requests were merged in the last week
- try to fix an ICE
- abort if a promoted fails to be const evaluable and its runtime checks didn't trigger
- allow declaring existential types inside blocks
- do not overwrite child def-id in place but rather remove/insert
- format linker args in a way that works for gcc and ld
- rustc: implement tokenization of nested items
- buffer NLL errors
- don't match on region kinds when reporting NLL errors
- NLL: improve the "fully elaborated type" case in region errors
- NLL: use better spans in some errors
- NLL: make temp for each candidate in
match
arm - NLL: fix some things for bootstrap
- suggest underscore when using dashes in crate name
- suggest fix when encountering different mutability from impl to trait
- do a basic sanity check for all constant values
- tweak the raw_identifiers lints in 2018
- change ManuallyDrop
to a lang item - don't use NonNull::dangling as sentinel value in Rc, Arc
- add unaligned volatile intrinsics
impl PartialEq+Eq for BuildHasherDefault
impl Executor for Box<E: Executor>
impl std::ops::Try for std::task::Poll
impl Send & Sync for JoinHandle
- make
memrchr
usealign_offset
- stablize Redox Unix Sockets
- don't
format!()
string literals cargo -Zcompile-progress
: use the target name in the progress bar when building a test/binary- rustdoc: rework how default passes are chosen
Approved RFCs
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.
RFCs
- [disposition: merge] Closures Capture Disjoint Fields.
Tracking Issues & PRs
- [disposition: merge] Tracking issue for
:vis
macro matcher. - [disposition: merge] Tracking issue for RFC 2093: Infer
T: 'x
outlives requirements on structs. - [disposition: merge] Tracking issue for RFC 2151, Raw Identifiers.
- [disposition: merge] Tracking issue for
ToOwned::clone_into
(toowned_clone_into
). - [disposition: merge] Calculate capacity when collecting into Option and Result.
New RFCs
Upcoming Events
Online
- Aug 8. Rust Community Team Meeting in Discord.
- Aug 14. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org.
- Aug 15. Rust Events Team Meeting in Telegram.
- Aug 15. Rust Community Team Meeting in Discord.
Africa
Europe
- Aug 8. Berlin, DE - Binding to Rust from everything.
- Aug 8. Berlin, DE - OpenTechSchool - Rust Hack and Learn.
- Aug 10. Frankfurt, DE - Rhein-Main Rust Meetup (with Special Guest).
- Aug 16. Cambridge, GB - Cambridge Rust Meetup.
North America
- Aug 5. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Aug 8. Vancouver, CA - Rust Study/Hack/Hang-out night.
- Aug 9. Arlington, US - Rust DC - Mid-month Rustful.
- Aug 9. Columbus, US - Columbus Rust Society - Monthly Meeting.
- Aug 9. Lehi, UT - Utah Rust - Monthly Meeting #3.
- Aug 12. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Aug 13. Seattle, US - Monthly Rust Meetup.
- Aug 17. Portland, US - RustConf 2018.
If you are running a Rust event please add it to the calendar to get it mentioned here. Email the Rust Community Team for access.
Rust Jobs
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Rust is more restrictive, indeed. But only in the sense that a car with seatbelts is more restrictive than one without: both reach the same top speed, but only one of them will save you in a bad day 😊
Thanks to Jules Kerssemakers for the suggestion!