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
- 🎈🎉 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
- 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!
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
- resolve: Remove remaining special cases from built-in macros
- resolve: Properly integrate derives and
- Point at the right enclosing scope when using
awaitin 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>.awaitwith 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
- Add APIs for uninitialized
- Reduce the genericity of closures in the iterator traits
- Add custom
cargo install: Remove orphaned executables
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.
No RFCs are currently in final comment period.
- [disposition: merge] Clarify
Box<T>representation and its use in FFI.
- [disposition: merge] Constify LinkedList new function.
No new RFCs were proposed this week.
- Sep 4. Johannesburg, ZA - Johannesburg Rust Meetup - informal discussions on topics related to the language.
- 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).
- 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.
- 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.
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!