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 Diesel — A safe, extensible ORM and query builder for Rust.
- Where are you From::from, And what have you turned Into::into? When and for what to use
From
andInto
traits. - Experimenting with Rust.
- Language of the month: Rust.
- Macro hygiene in all its guises and variations.
- Macro plans, overview. An overview of the changes that Nick plans to propose for the macro system.
- Parser Combinators: The road to Chomp 0.1.
Notable New Crates & Projects
- Diesel. A safe, extensible ORM and Query Builder for Rust.
- Chomp. Fast parser combinator library for Rust.
- libkeccak-tiny. A tiny implementation of SHA-3, SHAKE, Keccak, and sha3sum in Rust.
- Waitout. Simple interface for tracking and awaiting the completion of multiple asynchounous tasks.
Updates from Rust Core
69 pull requests were merged in the last week.
See the triage digest and subteam reports for more details.
Notable changes
- Make unreachable_code lint warn on diverging call arguments as well.
- Rename
#[deprecated]
to#[rustc_deprecated]
. - Add rustc UX guidelines.
- Fix various bugs around empty structs and patterns.
- Update bash-completion.
- Add suggestion of similar macro names to
macro undefined
error message. - Split
rustc::metadata
to a rustc_metadata crate. - Remove
#[staged_api]
.
New Contributors
- androm3da
- ebadf
- Ivan Stankovic
- Jack Fransham
- Jeffrey Seyfried
- Josh Austin
- Kevin Yeh
- Matthias Bussonnier
- Philipp Matthias Schäfer
- xd1le
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation 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:
- 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
- Change thread local variables to only accept async-signal-safe types.
- Amend RFC 550 with (expanded) abstract specification rather than algorithm.
Upcoming Events
- 12/1. Rust Sydney Meetup.
- 12/2. Boston: Concurrency in Rust Tutorial.
- 12/8. San Diego Rust Meetup.
- 12/9. RustBerlin Hack and Learn.
- 12/11. Rhein-Main Area Rust Meetup.
- 12/14. Seattle Rust Meetup.
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 Chrono, a crate that offers very handy timezone-aware Duration
and Date
/Time
types.
Thanks to Ygg01 for the suggestion. Submit your suggestions for next week!