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 an email! 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.
This week's edition was edited by: nasa42, brson, and llogiq.
Updates from Rust Community
News & Blog Posts
- Announcing Rust 1.5.
- Building an iOS app in Rust, Part 3. Passing owned objects between Rust and iOS.
- Writing an OS in Rust: Accessing and modifying page tables. Part of the series Writing an OS in Rust.
- Rust programming: Creating a Phoronix reader application
- Macro plans - syntax. Proposal to improve the syntax for Rust macros.
- Zero-runtime-cost mixed list in Rust.
- ArcadeRS 1.10: Asteroid attack!. Part of the series ArcadeRS 1.0: The project - a series whose objective is to explore the Rust programming language and ecosystem through the development of a simple, old-school shooter.
- Rust profiling with instruments and FlameGraph on OSX: CPU/Time.
- Type-Level Shenanigans.
- This Week in Redox OS 8.
Notable New Crates & Project Updates
- rusty-cheddar. A Rust plugin to automatically generate C-style header files.
- Iomrascálaí. An AI for the game of Go/Weiqi/Baduk written in Rust.
Updates from Rust Core
78 pull requests were merged in the last week.
Notable changes
- Store MIR in crate metadata.
- Cargo: Bump to 0.8.0.
- std: Remove deprecated functionality from 1.5.
- std: Rename
thread::catch_panic
topanic::recover
. - Adjust the pointer to an unsized field to the correct alignment.
New Contributors
- Brian Bowman
- Daniel Campbell
- Letheed
- petevine
- Tianyi Wang
- Xmasreturns
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. This week's FCPs are:
- Amend RFC 550 with (expanded) abstract specification rather than algorithm.
- Add a
IndexAssign
trait that allows overloading "indexed assignment" expressions likea[b] = c
. - Allow eliding more type parameters.
- Add thread-local custom panic handlers to customize the behavior of thread panics.
- Allow a custom panic handler.
- Add an
alias
attribute to#[link]
and-l
.
New RFCs
- Provide a syntactic sugar to automatically implement a given trait
Tr
using a pre-existing type implementingTr
. - Amend 0809 to reduce the number of traits.
Upcoming Events
- 12/15. Rust - Rethinking Systems Programming.
- 12/16. SSD Rust meetup - servo + TBD topics.
- 12/21. Paris - Rust Paris.
If you are running a Rust event please add it to the calendar to get it mentioned here. Email Erick Tryzelaar or Brian Anderson for access.
fn work(on: RustProject) -> Money
- Research Engineer - Servo at Mozilla.
- Senior Research Engineer - Rust at Mozilla.
- Open Source Software Engineer at MaidSafe.
- Software Engineer - Sensor Development at IronNet Cybersecurity.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Crate of the Week
This week's Crate of the Week is Quick Error – a rust-macro which makes errors easy to write.
Thanks to killercup for the suggestion. Submit your suggestions for next week!
Quote of the Week
how do cats arbitrate access to a shared typesetting system?
with a mew-TeX
— Nathaniel Theis on Twitter
Thanks to Paul for the tip.