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
- ripgrep 0.10.0 released (PCRE2 and multi-line support).
- rustfmt, compiled to wasm, in a webpage.
- Rust faster – SIMD edition.
- 2019 Strategy for rustc and the RLS.
- Adventures in Rust: Futures and Tokio.
- From Rust to beyond, episode 4: The C galaxy. An end-to-end example, includes cbindgen and clang.
- Parallelizing PNG, part 5: choosing Rust for mtpng.
- Tower Web - Expanding the middleware stack.
- Beware the rust cache on Travis (or why you should use it with care).
- RustFest Rome CFP is open and supporter tickets available.
- Videos from RustConf 2018.
- Rust Embedded WG newsletter 11.
Crate of the Week
This week's crate is cargo-src, a Rust source browser with syntax highlighting, jump to def, smart search and much more. Thanks to mark-i-m 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
137 pull requests were merged in the last week
- introduce Custom Test Frameworks
- ThinLTO: don't keep files open after mmaping them
- rustc: prepare the
atomics
feature for wasm - if- and while-let-chains, take 2 - edition changes
- resolve: relax shadowing restrictions on macro-expanded macros
proc_macro::Group::span_open
andspan_close
- fix incorrect outer function type parameter message
- fix
is_non_exhaustive
confusion between structs and enums - rewrite
precompute_borrows_out_of_scope
for fewer hash table lookups - make loop detector only consider reachable memory
- miri engine: make sure we do not copy unsized data
- optimize miri checking of integer array/slices
- NLL: do not propagate closure requirements if we can prove them locally
- NLL: teach SCC about
'static
- implement Unpin for Box, Rc, and Arc
- add trim_start, trim_end etc.; deprecate trim_left, trim_right, etc. in future
- allow to check if sync::Once is already initialized
- stabilize
#[panic_handler]
- rustdoc: show trait impl docs
- rustbuild: tweak LLVM distribution layout
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] Deny the
overflowing_literals
lint for the 2018 edition. - [disposition: merge] Lint reasons.
- [disposition: merge] Simpler alternative
dbg!()
macro. - [disposition: postpone] Add futures and task system to libcore.
- [disposition: postpone] Imply Option.
- [disposition: close] Support long path names on all Windows versions.
Tracking Issues & PRs
- [disposition: merge] Allow for opting out of ThinLTO and clean up LTO related cli flag handling..
- [disposition: merge] Move std::os::raw::c_void into libcore and re-export in libstd.
- [disposition: merge] Limit the promotion of const fns to the libstd and the
rustc_promotable
attribute. - [disposition: merge] stabilize slice_align_to.
- [disposition: merge] resolve: Do not error on access to proc macros imported with
#[macro_use]
. - [disposition: merge] Add a implementation of
From
for converting&'a Option<T>
intoOption<&'a T>
. - [disposition: merge] (Modules) Tracking issue for Picking a Module Path System variant.
- [disposition: merge] (Modules) Tracking issue for
(use) crate_name::
paths withoutextern crate
. - [disposition: merge] non-lexical lifetimes (NLL) tracking issue.
New RFCs
Upcoming Events
Online
- Sep 19. Rust Community Team Meeting in Discord.
- Sep 25. Rust Community Content Subteam Meeting at channel #rust-community.
- Sep 26. Rust Events Team Meeting in Telegram.
- Sep 26. Rust Community Team Meeting in Discord.
Europe
- Sep 14. Rome, IT - Rust Rome Meetup.
- Sep 18. Amsterdam, NL - Amsterdam Rust Meetup - Concurrency fundamentals, Tokio & WebAssembly.
- Sep 18. Rapperswil-Jona, CH - Rapperswil-Jona, Zürichsee Meetup - Looking for a speaker.
- Sep 19. Berlin, DE - Berlin Rust Hack and Learn.
- Sep 20. Cambridge, GB - Cambridge Rust Meetup.
North America
- Sep 13. Columbus, US - Columbus Rust Society - Monthly Meeting.
- Sep 13. San Diego, US - San Diego Rust September Meetup - WASM, "failure" library, or ???.
- Sep 13. Utah, US - Utah Rust monthly meetup.
- Sep 16. Mountain View, US - Rust Dev in Mountain View!.
- Sep 17. Boston, US - September Meetup at VMware.
- Sep 18. Denver, US - Denver Rust Meetup.
- Sep 19. Vancouver, CA - Vancouver Rust meetup - Study/Hack/Hang-out.
- Sep 20. Arlington, US - Rust DC - Mid-month Rustful.
- Sep 23. Mountain View, US - Rust Dev in Mountain View!.
- Sep 24. Durham, US - Triangle Rustaceans.
- Sep 25. Dallas, US - Dallas Rust - Last Tuesday.
- Oct 19 & 20. Ann Arbor, US - Rust Belt Rust 2018.
South America
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
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Bare Metal Attracts Rust
Thanks to llogiq for the suggestion!
Please submit your quotes for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.