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
- What one must understand to be productive with Rust.
- Rayon: Data parallelism in Rust.
- Programming with Rust. Rust for hardware hackers.
- Rendering an animation in Rust.
- Procedural macros, framework. Nick's continued efforts for a better macro system in Rust.
- Differential geometry in Rust.
- Adding community-driven Wayland support to Servo.
- Surfaces and signatures: Component privacy versus dependence.
- This week in Redox OS 9.
Notable New Crates & Project Updates
- rustfmt now comes with a Cargo subcommand
fmt
. - Rayon. A data parallelism library for Rust.
- Ruplicity. Rust library managing duplicity backups.
- Floki. A message queue in Rust, inspired by Apache Kafka and Amazon SQS.
- rustlearn. A machine learning package for Rust.
- Corange-rs. Rust bindings for the Corange game engine.
Updates from Rust Core
109 pull requests were merged in the last week.
See the triage digest and subteam reports for more details.
Notable changes
memchr
andmemrchr
in std.- privacy: Rewrite VisiblePrivateTypesVisitor.
- Book: First draft of primitive types.
- Book: New chapter: Comments.
- Book: New chapter: Functions.
- Make RFC 1214 warnings into errors. RFC 1214: Clarify (and improve) rules for projections and well-formedness.
- Better support for
--llvm-root
. - Ensure borrows of fn/closure params do not outlive invocations.
- Make name resolution errors non-fatal.
- Move built-in syntax extensions to a separate crate.
- Implement
#[deprecated]
attribute (RFC 1270). - Partially implement type ascription.
New Contributors
- Ed Clarke
- faineance
- fbergr
- Shiney
- Steve Wooster
- Zach Reizner
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 1328: Allow a custom panic handler.
- Amend RFC 550 with (expanded) abstract specification rather than algorithm.
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:
- Improve Cargo target-specific dependencies.
- Add a
IndexAssign
trait that allows overloading "indexed assignment" expressions likea[b] = c
. - Allow eliding more type parameters.
- Add an
alias
attribute to#[link]
and-l
.
New RFCs
- Generalize the delayed resolution of language items to arbitrary items.
- Add a
noalias
language item. - Add Rvalue-static-promotion.
- Deprecate type aliases in
std::os::*::raw
. - Safe
memcpy
,memset
for slices([T]::{ copy_from, fill })
. - pub(restricted) item. Expand the current
pub
/non-pub
categorization of items with the ability to say "make this item visible solely to a (named) module tree.
Upcoming Events
No upcoming events for next two weeks.
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
- Technical Lead/Manager at EBI Portfolios.
- Research Engineer - Servo at Mozilla.
- Senior Research Engineer - Rust at Mozilla.
- Open Source Software Engineer at MaidSafe.
- Multiple positions 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 clippy, a collection of lints for better Rust code. Alas, being a plugin, it only runs on nightly Rust, but that's easy to do with multirust. Thanks to leodasvacas for the suggestion.
Submit your suggestions for next week!
Quote of the Week
Do or do not. There is a try!
— Jonathan Turner in a blog post.
Thanks to Vikrant for the tip.