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
- Rust on AWS Lambda.
- Async IO for Rust (part II).
- GC and Rust Part 0: Garbage collection background.
- GC and Rust Part 1: Specifying the problem.
- Lessons learned from Rust: The Result Monad in Ruby.
- Bare Metal Rust 3: Configure your PIC to handle interrupts correctly.
concat_idents!
and macros in ident position.- This week in Piston.
- This week in Servo 42.
- This week in Redox OS 6.
- [Russian] Software render in Rust: Cubic texture. (Translated version).
Notable New Crates & Projects
- nom 1.0 is released.
- Freepass. The free password manager for power users.
- Barcoders. A barcode encoding library for the Rust programming language.
- fst. Fast implementation of ordered sets and maps using finite state machines.
- Rusty Code. Advanced language support for the Rust language in Visual Studio Code.
- Dybuk. Prettify the ugly Rustc messages (inspired by Elm).
- Substudy. Use SRT subtitle files to study foreign languages.
Updates from Rust Core
99 pull requests were merged in the last week.
See the triage digest and subteam reports for more details.
Notable changes
- RFC 1288: Add
Instant
andSystemTime
tostd::time
. - Detect confusing unicode characters and show the alternative.
- Rework stability annotation pass.
- Report errors at macro definition, not expansion.
- Rename
ImplItem_::*ImplItem
toImplItem_::*
. - liballoc: implement
From
forBox
,Rc
,Arc
. - Look up macro names as well when suggesting replacements for function resolve error.
- Ignore malformed environment strings like glibc does.
- Store items out-of-line in the HIR.
- Cargo: Make all working directories refer to
Config::cwd()
. - crates.io: Allow per-crate max upload sizes.
New Contributors
- Alexander Bulaev
- Ashkan Kiani
- Devon Hollowood
- Doug Goldstein
- Jean Maillard
- Joshua Holmer
- Matthias Kauer
- Ole Krüger
- Ravi Shankar
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- RFC 1270:
#[deprecated]
for Everyone. - RFC 1268: Allow overlapping implementations for marker traits.
- RFC 1288: Improvements to the Time APIs.
- RFC 1300: Define the general semantics of intrinsic functions.
- RFC 1323: Amend
recover
with aPanicSafe
bound.
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:
- Add thread-local custom panic handlers to customize the behavior of thread panics.
- Allow a custom panic handler.
- Document and expand the open options.
- Add an
alias
attribute to#[link]
and-l
.
New RFCs
Upcoming Events
- 11/25. Columbus Rust Society.
- 11/25. RustBerlin Hack and Learn.
- 12/1. Rust Sydney Meetup.
- 12/2. Boston: Concurrency in Rust Tutorial.
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.
- Systems Engineer 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 nom, a library of fast zero-copy parser combinators, which has already been used to create safe, high-performance parsers for a number of formats both binary and textual. nom just reached version 1.0, too, so congratulations for both the major version and the CotW status!
Thanks to Reddit user gbersac for the nom-ination! Submit your suggestions for next week!