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? Send me an email! Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub. If you find any errors or omissions in this week's issue, please submit a PR.
What's cooking on master?
104 pull requests were merged in the last week, and 6 RFC PRs.
Now you can follow breaking changes as they happen!
Breaking Changes
- Set
CLOEXEC
for all fds on Unix by default - Convert lifetime shadowing into a hard error
- Use discriminant_value intrinsic for
derive(PartialOrd)
Other Changes
- Phil Dawes refactored a bunch of the parser to return
Result
insteadof panicking - Implemented remaining string pattern API
- Implement reentrant mutexes and make stdio use them
- Prefer ObjectCandidate to ImplCandidate if both apply
- Michael Sproul added some more extended errors and improved their display
- Implement io::Seek on BufReader and BufWriter
- Allow plugins to register LLVM passes
- Stabilize clone_from
- Stabilize Error::from_raw_os_error
New Contributors
- Ben Ashford
- Christopher Chambers
- Dominick Allen
- Hajime Morrita
- Igor Strebezhev
- Josh Triplett
- Luke Gallagher
- Michael Alexander
- Michael Macias
- Oak
- Remi Rampin
- Sean Bowe
- Tibor Benke
- Will Hipschman
- Xue Fuqiao
Approved RFCs
- RFC 218: Empty struct with braces
- RFC 639: discriminant_value intrinsic
- RFC 888: Compiler fences
- RFC 911: Const functions and inherent methods
New RFCs
- Expand the scope of
std::fs
- Rename
soft_link
tosymlink
- Clarify cast rules, especially regarding fat pointers
- Rename or replace
str::words
- Redirecting stdio of child processes to open file handles
- Add
Sync
toio::Error
- Replace
tail
/init
Notable Links
- Fearless concurrency with Rust
- Featherweight musings: arrays and vectors in Rust.
- Newcomer to Rust: my experience
- Memcpy is
backwards. There
was a big silently-breaking change to
copy_memory
right before the beta. - Bay Area Rust Meetup: Data Science. Video from the SF meetup.
- Weekly-meetings/2015-04-07: beta, abs, rustdoc, wiki, docs
- Steve Klabnik and Yehuda Katz talk about Rust on The Changelog #151
- Aaron Turon's Stanford talk (video).
- A page of useful links for new contributors.
Project Updates
- Racer progress update 5 (cargo support).
- multirust. The Rust toolchain manager, updated with new features and bugfixes.
- reforge. A multiplayer sandbox space combat MMO.
- The Hat Backup System.
- Piston 0.1 is released.
- gag. Redirect stderr/stdout.
- afl.rs. Integrating American Fuzzy-Lop with Rust.
- hyper on beta.
- Raft: Small status update.
- This Week in Servo 30.
- A Chef comunity cookbook for Rust.
- A Docker image for Rust.
- Rust_Classifier. A naive Bayes classifier.
- Pool. A pool for reusable values, from carllerche.
- ggp-rs. A library for General Game Playing.
- timer. A timer to make up for the lack of one in std.
- retry. Retry an operation until a condition is satisfied.
- query_rs. LINQ-like macros.
- analit. 'Analog' literals for geometric types.
- Google APIs for Rust - Dev Diary #1: How to write 78 APIs in 5s (video).
- All crates of the RustAudio project work with beta.
- eventual_io. Async I/O with mio and eventual.
- serde, the serialization library, is beta-compatible.
- nickel, the web framework, is on crates.io.
- coroutine-rs. Coroutines.
- rust-sdl2 is beta-compatible.
Upcoming Events
- 4/13 Seattle
- 4/14 Sydney
- 4/20 Paris
- 4/22 Columbus Rust Society. Their inaugural event.
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
<frankmcsherry> rust is like a big bucket of solder and wire, with the promise that you can't electrocute yourself.
From #rust.
Thanks to BurntSushi for the tip. Submit your quotes for next week!.