2016-08-09

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.

Updates from Rust Community

News & Blog Posts

Announcing Tokio. A Finagle inspired network application framework for Rust.

Helping with the Rust errors. Step-by-step instructions on how to help with the new Rust error messages.

Introduction to nom. A parsing framework written in Rust.

Convenient and idiomatic conversions in Rust.

Better Exception Messages. Part of the series Writing an OS in Rust.

Writing a JPEG decoder in Rust. Part 1: Background.

Extent of Intent. Llogiq considers no-ops for consistency's sake harmful.

Rust code in mozilla-central now builds via cargo.

imag usecases. imag usecases explained.

[podcast] New Rustacean podcast episode 17. A deep dive on references and pointers in Rust.

New Crates & Project Updates

[graph] Six months of rustc performance and memory usage.

Tokamak 0.2.8 released. Now with Rustup support.

Cargo nightly builds now support vendoring dependencies.

Exar DB. An event store with streaming support.

DUX. An X11 backlight manager.

rst. A requirements tracking tool made for developers and stands for "Requirements, Specifications and Tests". There is also an introductory blog post.

fdpass-rs. A high level library to send and receive file descriptors through UNIX socket in a safe way.

This week in Servo 73.

This week in Rust docs 16.

This week in TiKV 2016-08-05.

This week in Ruma 2016-08-07.

Crate of the Week

This week's Crate of the Week is Dylan Ede's rusttype, a pure Rust freetype replacement. Thanks mindtree for the suggestion.

Submit your suggestions for next week!

Call for Participation

Always wanted to contribute to open-source projects but didn't know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!

Some of these tasks may also have mentors available, visit the task page for more information.

[easy] rust book: Script to lint for copypasta'd file paths that should be generic. Create a little script that will help the next version of the book have fewer errors!

[easy] rust: Error code list which need to be updated to new format.

[easy] rustup: Don't capture backtraces without RUST_BACKTRACE=1.
An easy fix, done in two steps, first modifying error-chain, then upgrading it in rustup.

[easy] rustup: Add command to install shell
completions.

[moderate] rust: improve error message when resolution via Deref
actually required
DerefMut. Good
first type system bug.

[hard] imag: implement bindings to lua/lisp (ketos)/rhai for the filter
library

If you are a Rust project owner and are looking for contributors, please submit tasks here.

Updates from Rust Core

147 pull requests were merged in the last two weeks.

Too many error description updates to report here

MIR switched on by default (test it while it's hot!)

MIR deaggregates struct access

The LLVM Upgrade from Hell (A most epic MIR blocker)

fix out-of-sync LLVM interface

Auto-Upgrade outmoded LLVM intrinsics

MinGW linking problems dodged

Fix panic=abort vs. plugins

TokenStreams are now ropes

TypeIds are now unique cross-crate

Cross-Crate DefIds needed for MIR

Break unsound code with unused type parameters (breaking change, if you didn't infer that already)

Better warnings against shadowing types/imports

Ignore deprecated items within deprecated items

Unify inlined code caching (should need less RAM)

Unmatched surrogates are now reported in lowercase (could break your code if you relied on uppercase – hopefully no one did)

impl From<Vec<char>> and From<&[char]> for String

Handle RwLock reader overflow

Cargo now supports local registry mirrors

Cargo warns, not errs on duplicate targets

New Contributors

Adam Medziński

Alexander Altman

Chris Stankus

Christian Poveda

Dominik Boehi

Federico Ravasio

Fran Guijarro

Jakub Hlusička

Jared Wyles

Jonathan Giddy

kc1212

m4b

Matthias Rabault

Mikhail Modin

mLuby

Moritz Ulrich

Nick Massey

Oliver Forral

Omer Sheikh

Peter C. Norton

Rahul Sharma

Roy Brunton

Ryan Scott

Samuel Cormier-Iijima

Shantanu Raj

silenuss

Terry Sun

TheZoq2

trixnz

Vincent Prouillet

William Lee

Yojan Shrestha

Yossi Konstantinovsky

Approved RFCs

Changes to Rust follow the Rust RFC (request for comments)
process. These
are the RFCs that were approved for implementation this week:

No RFCs were approved this week.

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:

Create a team responsible for documentation for the Rust project.

Add extra access methods for atomic types.

Dedicated strike team to resolve unsafe code guidelines.

Add a compiler flag that emits crate dependencies on a best-effort basis.

Specify Rust compatibility of nursery crates.

RFC process for formatting style and Rustfmt defaults.

Define a best practices procedure for making bug fixes in the compiler.

FusedIterator marker trait and iter::Fuse specialization.

Add a literal fragment specifier for macro_rules! patterns that matches literal constants.

Clarify the relationships between various kinds of structs and variants.

New RFCs

Allow crates to specify the version of Rust in which they are written.

Support versioned dependencies on build tools, such as cargo.

Add a 'thread lifetime, which denotes a thread-bounded region.

Allow uncallable method impls to be omitted.

Target bundles. Combine distribution of standard libraries and targets into bundles for targeting a particular platform.

Upcoming Events

8/10. Rust Community Team Meeting at #rust-community on irc.mozilla.org.

8/10. Rust Boulder/Denver Monthly Meeting.

8/11. Columbus Rust Society.

8/12. Frankfurt/Germany Meetup.

8/15. Rust Paris.

8/17. Rust Community Team Meeting at #rust-community on irc.mozilla.org.

8/17. Rust Los Angeles Meetup.

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

No jobs listed for this week.

Tweet us at @ThisWeekInRust to get your job offers listed here!

Quote of the Week

The if let construction is a neat thing Rust borrowed from Swift (perhaps "copied" would be more accurate, or "cloned" depending on your views on whether ideas have owners).

— Frank McSherry in a blog post.

Thanks to /u/vks_ and Brian Anderson for the suggestion.

Submit your quotes for next week!

This Week in Rust is edited by: nasa42, llogiq, and brson.

Show more