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.
Updates from Rust Community
News & Blog Posts
- If you use unsafe, you should be using compiletest.
- Running Rust on the Rumprun unikernel.
- Survey of licenses used by Rust projects on crates.io.
- An introduction to timely dataflow, part 3. Learn more about timely dataflow by writing a breadth-first search on random graphs.
- These weeks in Servo 34.
- Get data from a URL in Rust.
- Debuger state machine in Rust.
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.
Updates from Rust Core
88 pull requests were merged in the last week.
Notable changes
- Correctly walk import lists in AST visitors.
- Remove region variable leaks from
higher_ranked_sub()
. - Always pass
/DEBUG
flag to MSVC linker. - Do not
drop_in_place
elements ofVec<T>
ifT
doesn't need dropping. - Make function pointers implement traits for up to 12 parameters.
- Use
BufWriter
in fasta-redux for a nice speedup. - Upgrade hoedown to 3.0.5.
- Add
no_default_libraries
target linker option. - Remove the deprecated
box(PLACE)
syntax. - Implement
AsMut
forVec
.
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:
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
- Promote the
libc
crate from the nursery. - Add an internationalization framework to the Rust compiler.
- Add an
alias
attribute to#[link]
and-l
.
Upcoming Events
- 9/30. RustBerlin Hack and Learn.
- 10/1. Rust Meetup Hamburg: Rusty Project Presentations.
- 10/12. Seattle Rust 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!
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!