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.
From the Blogosphere
- Things rust shipped without. Rust released 1.0 without these "features", and for good reasons.
- Rust Never Sleeps: How Mozilla Could Become Cool Again. Mozilla has almost faded from memory, but Rust could make it hip again.
- Why Go and Rust are not competitors.
- A Rusting Rubyist. Mike Piccolo documents his attempt to create a web scraping library in Rust that can be called from a Ruby module.
- A Rusting Rubyist II.
- A Pythonist getting Rusty these days... (Part 1). Rust from a Python developer's perspective.
- A Simple Web App in Rust, Part 3 -- Integration. The third part in a series on writing a very simple web application in Rust.
- Understanding Lifetime in Rust – Part I.
- [PDF] Parallelization in Rust with fork-join and friends.
New Releases & Project Updates
- capgun. A simple utility that watches files and fires a specified command when they do.
- pirate. A command-line arrrrguments parser, written in Rust.
- rust-worldgen. Noise and World Generation library for Rust.
- plex. A parser and lexer generator as a Rust syntax extension.
What's cooking on nightly?
107 pull requests were merged in the last week.
New Contributors
- Adam Heins
- Alex Newman
- Christian Persson
- Eljay
- Kagami Sascha Rosylight
Approved RFCs
Final Comment Period
Every week the teams announce a 'final comment period' for RFCs which are reaching a decision. Express your opinions now. This week's RFCs entering FCP are:
- Expand the std::net module. Expand the surface area of std::net to bind more low-level interfaces and provide more advanced customization and configuration of sockets.
- Rename
connect
tojoin
. - Replace
slice::tail()
/init()
with new methods. - Redirect
stdio
of child processes to open file handles. - Allow macros in types.
- Allow closure expressions to expand to a
&
or&mut
temporary. Modify the||
expression sugar so that it can expand to eitherF
,&F
, or&mut F
, whereF
is a fresh struct type implementing one of theFn
/FnMut
/FnOnce
traits.
New RFCs
- Add a high-level intermediate representation (HIR) to the compiler..
- Style: How should we format function declarations?.
- Stabilize the
#![no_std]
attribute. - Anonymous/placeholder lifetime
'_
. Allow using an undeclared '_ wherever an explicit lifetime can be used, but is optional, such as function argument/return types and any path inside a function. - Create
IntoRaw{Fd, Socket, Handle}
trait to complementAsRaw*
. - Allow changing the default allocator. Add support to the compiler to override the default allocator, allowing a different allocator to be used by default in Rust programs.
- Propose
Interior<T>
data-type, to allow moves out of the dropped value during the drop hook.
Upcoming Events
- 7/7, San Diego Rust Meetup
- 7/8, Rust in Production - San Francisco
- 7/13, Seattle Rust Meetup
- 7/15, Rust Los Angeles Monthly Meetup
- 7/20, Rust Paris.
- 7/22, Columbus Rust Society.
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.
Quote of the Week
"Greek constitution to be rewritten in #rustlang to deal with their ownership and borrowing problem." — @bigthingist