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: nasa42, brson, and llogiq.

News & Blog Posts

Notable New Crates

rust-todomvc. Implementation of TodoMVC in Rust in the browser.

zas. A tool to help with local web development, inspired by Pow.

Serve. Command line utility to serve the files in the current directory.

Rodio. Rust audio playback library.

io-providers. Defines "provider" traits and implementations for different types of I/O operations.

rust-sorty. A Rust lint to help with the sorting of uses, mods & crate declarations.

walkdir. Rust library for walking directories recursively.

88 pull requests were merged in the last week.

Notable changes

New Contributors

Amit Aryeh Levy

David Elliott

DenisKolodin

Reza Akhavan

Sebastian Wicki

Xavier Shay

Approved RFCs

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

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

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.

fn work(on: RustProject) -> Money

No jobs listed for this week. Tweet us at @ThisWeekInRust to get your job offers listed here!

Crate of the Week

This Week, Crate of the Week is BurntSushi's quickcheck. Out of all quickcheck implementations, this is probably one of the more impressive ones. Thanks to DanielKeep, who had this to say:

It helps write property-based tests: you define some property and how to test it, and quickcheck feeds your test random inputs as it tries to narrow down the ranges within which the property fails to hold. Handy when the set of possible test cases is very large.

I'd like to add an appeal to all supporters of "repeatable tests". Don't let the worthy goal of repeatability override the worthier goal of actually finding bugs. Your deterministic tests usually cannot even make a dent in the vast space of possible inputs. With a bit of randomness thrown in, you can greatly improve you chances and thus make your tests more valuable. Also with quickcheck, you get to see a minimized input that makes your test fail, which you can then turn into a repeatable test easily.

Quote of the Week

If one regards Rust as a critique to C++, it certainly should be seen as a constructive critique. — llogiq on /r/cpp.

Thanks to msiemens for the tip. Submit your quotes for next week!