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
- ๐๐ Announcing Rust 1.37.0. ๐๐
- Announcing async-std beta: an async port of the Rust standard library.
- How Rust optimizes async/await: Part 1.
- System 76 releases new GTK firmware manager written in Rust.
- Writing a Linux kernel module in Rust.
- Introducing the Rust Game Development Working Group.
- Steam wishlist announced for Way of Rhea, a sidescrolling puzzle game written in Rust.
- Visual embedded Rust programming with Visual Studio Code.
- How to diagnose async apps with
tracing
. - Using C libraries in Rust: A practical guide to FFI using bindgen.
- Pre-/Post-conf events: Sustainable ๐ train travels from and to RustFest Barcelona.
<_>::v::<_>
- A fun little piece of Rust artwork.
Crate of the Week
This week's crate is async-std, a library with async variants of the standard library's IO etc.
Thanks to mmmmib 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.
- rustc-guide: Make HIR identifiers table more discoverable.
- rustc-guide: Explain what interning means.
- rustc-guide: Terms used before being explained.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
268 pull requests were merged in the last week
- Hash the remapped sysroot instead of the original
- Make sure that all file loading happens via SourceMap
- syntax: Account for CVarArgs being in the argument list
- Remove redundant
ty
fields frommir::Constant
andhair::pattern::PatternRange
- resolve: Remove remaining special cases from built-in macros
- resolve: Properly integrate derives and
macro_rules
scopes - Point at the right enclosing scope when using
await
in non-async fn - typeck: Prohibit RPIT types that inherit lifetimes
- Handle elision in async fn correctly
- When needing type annotations in local bindings, account for impl Trait and closures
- Improved error message for break in async block
- Suggest Rust 2018 on
<expr>.await
with no such field - Crank up invalid value lint
- Refactor Miri ops (unary, binary) to have more types
- Do not generate allocations for zero sized allocations
- Feature gate 'yield $expr?' pre-expansion
- Provide map_ok and map_err method for Poll
- Implement
Clone
,Display
forascii::EscapeDefault
- Add APIs for uninitialized
Box
,Rc
, andArc
(Plusget_mut_unchecked
) - Reduce the genericity of closures in the iterator traits
- Add custom
nth_back
forChain
cargo install
: Remove orphaned executables
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
No RFCs are currently in final comment period.
Tracking Issues & PRs
- [disposition: merge] Clarify
Box<T>
representation and its use in FFI. - [disposition: merge] Constify LinkedList new function.
New RFCs
No new RFCs were proposed this week.
Upcoming Events
Africa
Asia Pacific
- Aug 24. Chennai, IN - Rust Chennai - Monthly meetup - August.
- Aug 27. Seoul, KR - Seoul Rust Meetup, Hapjeong.
- Sep 2. Auckland, NZ - Rust AKL - Introduction to Rust (session 1 of 3).
Europe
- Aug 26. Thessaloniki, GR - Rust + GNOME Workshop at GUADEC.
- Aug 27. London, GB - Rust London User Group - Rust Hack n Learn + Lightning Talks Evening #16.
- Aug 27. Thessaloniki, GR - Rust + GNOME BoF at GUADEC.
- Aug 28. Copenhagen, DK - Copenhagen Rust Hack Night #17.
- Aug 29. Zurich, CH - Rust Zurich - August Community Meetup.
- Sep 4. Berlin, DE - OpenTechSchool Berlin - Rust Hack and Learn.
North America
- Aug 26. Durham, NC, US - Triangle Rustaceans - Build a syslog server with mio.
- Aug 27. Dallas, TX, US - Dallas Rust - Last Tuesday.
- Aug 27. Chicago, IL, US - Chicago Rust Meetup - Macros Rule! A Dive Into Rust's Syntax Extension Toolbox.
- Aug 28. Ann Arbor, MI, US - Ann Arbor Rust Meetup - Monthly Gathering.
- Aug 28. Mesa, AZ, US - Desert Rust - Rust: Frontend Web.
- Sep 4. Vancouver, BC, CA - Vancouver Rust meetup.
- Sep 4. Indianapolis, IN, US - Indy.rs.
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
C++ being memory safe is like saying riding a motorcycle is crash safe.
It totally is, if you happen to have the knowledge and experience to realize this is only true if you remember to put on body-armor, a helmet, a full set of leathers including gloves and reinforced boots, and then remember to operate the motorcycle correctly afterwards. In C/C++ though, that armor is completely 100% optional.
Thanks to Dmitry Kashitsyn for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.