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
- Safety = Freedom.
- This week in Redox 1. Redox is an upcoming OS written in Rust.
- This week in Servo 36.
- Conference report: Friendly, diverse Rust Camp.
- Neither necessary nor sufficient - why Rust shipped without GC.
- Rustfmt-ing Rust.
- Virtual structs part 4: Extended enums and thin traits.
- Macros. Plans on an overhaul of the syntax extension and macro systems in Rust.
- Lints that collect data per crate.
- Stuff the identity function does (in Rust).
- Rust in detail: Writing scalable chat service from scratch.
- Formalizing Rust.
Notable New Crates & Projects
- Plumbum. Conduit-like data processing library for Rust.
- rust-keepass. Crate to use KeePass databases in Rust.
- Rusoto. AWS client libraries for Rust.
- fired. Fast init system for Redox OS.
- Rust Release Explorer.
- cargo-edit. A utility for adding cargo dependencies from the command line.
- Rust MetroHash. Rust implementation of MetroHash - a high quality, high performance hash algorithm.
- rose_tree. An implementation of the rose tree data structure for Rust.
- daggy. A directed acyclic graph data structure for Rust.
- hdfs-rs. libhdfs binding and wrapper APIs for Rust.
- cargo.el. Emacs minor mode for Cargo.
Updates from Rust Core
102 pull requests were merged in the last week.
Notable changes
- Turn on MIR construction unconditionally.
- Make function pointers implement traits for up to 12 parameters.
- Implement
Read
,BufRead
,Write
andSeek
forCursor<Box<[u8]>>
. - Shrink metadata size. libcore.rlib reduced from 19121 kiB to 15934 kiB - 20% win.
- Implement RFC 1238: nonparametric dropck.
- Integer parsing should accept leading plus.
- Add
AsRef
/AsMut
impls toBox
/Rc
/Arc
. - rustc: Don't lint about isize/usize in FFI.
- rustc: Improve the dep-info experience.
- Cargo: Fix
make
andmake doc
on Mac OS X 10.11 El Capitan. - Book: Add documentation on custom allocators.
- Book: New "Syntax Index" chapter.
- rust.vim: Add rudimentary support for the playpen.
- sublime-rust: Major changes. (PR has a list of all changes).
New Contributors
- Carlos Liam
- Chris C Cerami
- Craig Hills
- Cristi Cobzarenco
- Daniel Carral
- Daniel Keep
- glendc
- Joseph Caudle
- J. Ryan Stinnett
- Kyle Robinson Young
- panicbit
- Yoshito Komatsu
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- 1228: Place left arrow syntax (
place <- expr
). - 1260: Allow a re-export for
main
. - Amend #911 const-fn to allow unsafe const functions.
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:
- Allow overlapping implementations for marker traits.
- Ordered ranges 2.0. Replace
range(Bound::Excluded(&min), Bound::Included(&max))
withrange().ge(&min).lt(&max)
. - Stabilize OS string to bytes conversions.
- Implement
.drain(range)
and.drain()
respectively as appropriate on collections..
New RFCs
Upcoming Events
- 10/13. San Diego Rust Meetup #9.
- 10/14. RustBerlin Hack and Learn.
- 10/19. Rust Paris.
- 10/20. Rust Hack and Learn Hamburg.
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
The Crate of this week is Conrod, a simple to use immediate-mode GUI library written in pure Rust. Thanks to 7zf.
Conrod forgoes the traditional "wrap the default GUI for each operating system/desktop environment" approach and uses OpenGL to present a simple, but color- as well as powerful GUI in its own style. There are a good number of widgets implemented already, and writing GUI code with conrod is a breeze thanks to the very streamlined interface.
Quote of the Week
War is Unsafe
Freedom is Safety
Ignorance is Type-checked
(The new trifecta for rust-lang.org)
Thanks to ruudva for the tip. Submit your quotes for next week!