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?
127 pull requests were merged in the last week, and 18 RFC PRs.
Now you can follow breaking changes as they happen!
Breaking Changes
- In types that implement
Drop
, lifetimes must outlive the value. This will soon make it possible to safely implementDrop
for types where#[unsafe_destructor]
is now required. Read the gorgeous RFC for details. - The reserved keyword
be
, for invoking guaranteed tail calls, has been replaced withbecome
, butbe
will remain in our hearts. RFC. Self
is a keyword.#[unsafe_no_drop_flag]
is now under theunsafe_no_drop_flag
feature gate.- Some float constants were renamed.
std::failure
moved tostd::panicking
. This is an unstable module dealing with unwinding, not likely to cause breakage.
Other Changes
- Objects now have default lifetime bounds, so you don't have
to write
Box<Trait+'static>
when you don't care about storing references. RFC. - The new
std::fs
andstd::process
modules have arrived! They are much the same as the old but follow new conventions as described in RFC 579 and RFC 739. - On Unix Rust will soon be uninstallable by running
/usr/local/lib/rustlib/uninstall.sh
. - Richo Healey added lints for putting
#[no_mangle]
onconst
s, as well as on privatestatic
s.#[no_mangle]
only makes sense for things with public symbol names. - eddyb endured an epic struggle with @bors to make borrows of constants
&'static
.
New Contributors
- Duane Edwards
- Geoffrey Thomas
- Hugo van der Wijst
- Jorge Israel Peña
- Mátyás Mustoha
- Michael Budde
- Pierre Baillet
- Renato Alves
- Thiago Carvalho
- Tim Cuthbertson
Approved RFCs
We'll catch up on RFCs next week.
Friend of the Tree
The Rust Team likes to occassionally recognize people who have made outstanding contributions to The Rust Project, its ecosystem, and its community. These people are 'friends of the tree'.
This week's friend of the tree was ... Jonathan Reem (reem)
Jonathan Reem has been making an impact on Rust since May 2014. His primary contribution has been as the main author of the prominent Iron web framework, though he has also created several other popular projects including the testing framework stainless. His practical experience with these projects has led to several improvements in upstream Rust, most notably his complete rewrite of the TaskPool type. Reem is doing everything he can to advance the Rust cause.
Quote of the Week
"You may be wondering whether this algorithm is correct. The answer is 'sort of'." @horse_rust (after Niko).
Notable Links
- 1.0 final timeline. Promises are made. HN. /r/rust. /r/programming.
- The "Author of Unix in Rust abandons Rust in favor of Nim" headline spread to /r/rust, /r/programming, and HackerNews. Everybody stay calm!
- What are Rust's exact auto-dereferencing rules? Valuable intel with which all rusticians should be equipped.
- The incredible rewards of creating a programming language. Creating a programming language is fun. Join us and have fun.
- Samsung OSG is hiring for Rust/Servo related work.
- Codius + Rust = ❤. Codius is creating some far-out smart contract things and Rust is part of the secure foundation.
- Hematite, our resident Minecraft clone from the Piston project, made the HackerNews rounds.
- Duck typing in Piston. Piston is possessed of some radical notions.
- The ACM SIGMOD programming competition welcomes Rust entries.
- License stats for crates.io. A surprisingly strong showing for the WTFPL.
- Rust needs net/http. And net/http needs Rust.
- First look at Cap'n Proto. Cap'n Proto for Rust is mega fast.
- Getting Rusty. Watch people code in Rust.
Project Updates
- rust-cbor. An implementation of Concise Binary Object Representation.
- xsv. A CSV swiss-army knife.
- rimd. Library for working with MIDI.
- rust-jack. Bindings to the Jack low-latency Linux audio API.
- stomp-rs, an implementation of the STOMP messaging protocol, has matured a lot in 6 months.
- timely-dataflow. An implementation of the low-latency dataflow model from Naiad.
- Trace Quest 5, the youtube series about building a raytracer in Rust, wrapped up its final episode.
- rust-ptrace: Wrapper for the
ptrace
syscall, from Codius. - bytes. A crate for working with bytes!
- RustAudio. A collection of crates for audio processing, from the mind of mitchmindtree.
- Helion. An Ambilight clone for making your TV produce ambient lighting in concert with the video. Watch the test video.
- rhex. A hexagonal roguelike with a live instance you can telnet into.
- comm: An alternate implementation of channels.
- This Week in Servo 23. With screenshots of Servo running on FxOS.
- syntex: Syntax extensions that work with stable Rust, from Erick Tryzelaar.
Upcoming Events
- February 16, Rust Paris.
- February 19, Rust Bay Area. Subject is I/O.
- February 26, Rust NY. With Steve, Niko and Jack.