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: Brian Anderson, Vikrant Chaudhary
From the Blogosphere
- Two reasons the Rust language will succeed. As good as the Rust project may be, its community is even better.
- Holy std::borrow::Cow, also Redux: Llogiq investigates Cow usage and implementation.
ijson
in Rust. A series of posts on implementing a streaming JSON parser.- A Rusting Rubyist III. Rust HTTP Requests in a Ruby Module.
- Profiling Rust applications on Linux.
- Understanding Lifetime in Rust – Part II.
- Traits as Higher-order Functions.
- Understanding
mio
and Asynchronous IO. - Building a Random Friend Dialer Part 1: Getting Started with Rust and Iron.
- Parsing ISO8601 dates using nom.
- [podcast] Rusty radio - episode 2. Featuring Alex Newman, Ben Striegel, Carl Lerche of tilde.io, and Jonathan Reem of terminal.com.
- [video] Rust: A type system you didn't know you wanted.
New Releases & Project Updates
- chan. Multi-producer, multi-consumer concurrent channel for Rust.
- cargo-check. Wrapper around
cargo rustc -- -Zno-trans
. - Raft: New Crates!. Two new crates
wrapped_enum
(use multipletry!()
with different errors) andscoped_log
(log log context to logs) from Raft developers. - rust-memalloc. Raw allocation APIs in stable rust.
- newtype_macros. Tuple structs with a single member, intended to be used for wrapping types to create new semantics for an underlying type.
- capnp-ffi. Use Cap'n Proto as a better method of FFI communication.
- rust-farmhash. Port of Google's Farmhash version 1.1 to pure Rust.
What's cooking on nightly?
bors underwent a sudden unscheduled upgrade this week, incurring unusual amounts of downtime. Thankfully, Manish crafted an epic rollup to make up some of the slack.
98 pull requests were merged in the last week.
- Implement
DerefMut
forString
- Add specializations of read_to_end for Stdin and File using uninitialised buffers
- Allow semi tokens after macro ty/path. See the test case for an example of what this means.
- LLVM was updated to 3.7. Includes improved 32-bit MSVC, archive writing, and some performance improvements and minor fixes.
New Contributors
- arthurprs
- Frank McSherry
- Jose Narvaez
- Kristof Söderström
- Ryan Pendleton
- Vincent Bernat
- Vladimir Rutsky
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 for creation of
IntoRaw{Fd, Socket, Handle}
trait to complementAsRaw*
. This provides interop between the standard library's I/O and other out-of-tree platform-specific APIs.
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:
New RFCs
- Update FOLLOW set for
ty
tokens - RFC: impl specialization
- [RFC] Introduce a mid-level IR (MIR) in the compiler that will drive borrowck, trans
- RFC: line-endings
- RFC: The Life and Death of an API
Internals discussions
- Pre-RFC: SIMD groundwork. Huon is working on SIMD and is still soliciting feedback.
- Adding “minifloats” (f24, f16, f8) as native types
- Pre-RFC: Explicit Opt-in OIBIT for truly POD data and safe transmutes
- Implementation of
try!
that works withOption
andResult
- Core team meeting 2015-07-15 (Regression testing; Servo breakage; Connect to join; Specialization + dropck)
- Pre-RFC: become-assignments for reliable RVO/DPS
- Pre-RFC solidifying repr(Rust)
Upcoming Events
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
Rust is very much about only paying for what you need, and often you don't need much, but when you do need something, Rust is more than ready to rummage in your wallet for loose change. — Manish Goregaokar
Thanks to llogiq for the tip. Submit your quotes for next week!.