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.