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
- MIR-based borrow check (NLL) status update.
- Divans: Open source compression in Rust from Dropbox using threads, SIMD with a WASM demo in the browser.
- Integration tests. Part of the series Writing an OS in Rust.
- From ActiveRecord to Diesel.
- Building a Diesel project on GitLab CI.
- A trick for test maintenance.
- Running Rust on the GPU with Accel.
- Rust on LPC82x microcontrollers using lpc82x-hal.
- Why Rust's async functions should use the outer return type approach.
- aturon.log: listening and trust, part 3.
- This week in Rust and WebAssembly 3.
- [podcast] Rusty Spike Podcast - episode 33. Crossbeam channels, actix benchmarks (and how to use it), qt, servo, gfx-portability, debian, OS development, LibOS, and a new book.
Crate of the Week
This week's crate is SIMDNoise, a crate to use modern CPU vector instructions to generate various types of noise really fast. Thanks to gregwtmtno 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
66 pull requests were merged in the last week
- rustc_codegen_llvm: don't treat
i1
as signed, even for#[repr(i8)]
enums - rustdoc: process cross-crate glob re-exports
- Stabilize
#[repr(transparent)]
- libstd: add an RAII utility for
sys_common::mutex::Mutex
- Don't auto-hide inherent impls even if
rustdoc-collapse == true
- Add
Ref
/RefMut::map_split
method - Improve memoization and refactor NLL type check
- refactor: create multiple HIR items for imports
- Speed up obligation forest code
impl Hash for !
- Stabilize
GlobalAlloc
and#[global_allocator]
- Replace
core::iter::AlwaysOk<T>
byResult<T, !>
- Stabilize
std::path::Path::ancestors
- Add error message for using >= 65535 hashes for raw string literal escapes
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] Add
Option::replace
to the core library.
Tracking Issues & PRs
- [disposition: merge] Tracking issue for the to_bytes and from_bytes methods of integers.
- [disposition: merge] Tracking issue for RFC 554:
pattern_parentheses
feature. - [disposition: merge] Tracking issue for
ToOwned::clone_into
(toowned_clone_into
). - [disposition: merge] Tracking issue for "macro naming and modularisation" (RFC #1561).
- [disposition: merge] Tracking issue for promoting
!
to a type (RFC 1216). - [disposition: merge] Loosened rules involving statics mentioning other statics.
- [disposition: merge] Implement
PartialEq
between&str
andOsString
. - [disposition: merge] Undeprecate
thread::sleep_ms
.
New RFCs
- Clippy 1.0.
- Signing registry index commits.
- Add the
group_by
andgroup_by_mut
methods to slice. - Add
delete
anddelete_by
methods toIterator
. - Accept semicolons as items.
- Update RFC 0430 to allow underscores between numbers in CamelCase names.
Upcoming Events
Online
- Jun 27. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Jul 3. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org.
- Jul 4. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Jul 4. Rust Events Team Meeting.
Africa
Europe
- Jun 21. Cambridge, GB - Cambridge Rust Meetup.
- Jun 27. Berlin, DE - OpenTechSchool - Rust Hack and Learn.
- Jun 27. Cologne, DE - Rust Cologne at ThoughtWorks.
- Jun 27. Milan, IT - Perché non compila?
- Jul 6. Darmstadt, DE - Rhein-Main Rust Meetup.
North America
- Jun 24. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Jun 25. Durham, US - Triangle Rustaceans.
- 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 - [Mozilla] GUI in Rust and Chalk.
- Jul 1. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Jul 4. Atlanta, US - Grab a beer with fellow Rustaceans.
- Jul 4. Indianapolis, US - Indy.rs.
- Aug 17. Portland, US - RustConf 2018. Registration is now open.
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
In Rust it’s the compiler that complains, with C++ it’s the colleagues
– Michal 'Vorner' Vaner on gitter
(selected by llogiq per one unanimous vote)