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.
From the Blogosphere
- A Rusting Rubyist IV. Rust Structs and Arrays in Ruby.
- Rust's Built-in Traits, the When, How & Why.
- Type-checked matrix operations in Rust.
- Visualizing Rust's type-system.
- A web app with Nickel: From first line to Heroku deployment.
- Why you should take a closer look at Rust 1.0.
- My First PR for the Rust compiler.
- [book] The Advanced Rust Programming Language.
- Abstracted Algebra in Rust, part I and part II.
New Releases & Project Updates
- Racer is now at v1.0
- Raft implementation is ready to start experimenting with.
- annotated-std-rs. An annotation of the Rust standard library.
- rust-syslog. Send syslog messages from Rust.
- unrar.rs. Rust library for extracting, listing and testing RAR archives.
- msgpack-rust. MessagePack implementation for Rust.
Slides and talks from RustCamp!
RustCamp was on Saturday, August 1st. It was lovely event populated by lovely people. If you couldn't make it here are the slides from some of the talks. Hopefully the remainder of slides will become available this week. Video recordings will be available at an indeterminate future date.
- [pdf] Keynote by Aaron Turon and Niko Matsakis.
- [notes] Navigating the Open Seas by Carol (Nichols || Goulding).
- [pdf] Making tools for Rust by Nick Cameron.
- [pdf] Mio: Fast Async IO for Rust by Carl Lerche.
- [slides] Who Owns This Stream of Data? by Alexis Beingessner.
What's cooking on nightly?
130 pull requests were merged in the last week.
- Gankro landed The Advanced Rust Programming Language, which was quickly renamed to The Rustonomicon. This book is about unsafe Rust and will become Gankro's master's thesis. Read it online.
- Nonzeroing move hints. This patch adds drop flags to the stack as part of the non-zeroing drop RFC. It does not yet remove the drop flag from objects.
- @azerupi cleaned up the design of gitbook, the tool that generates The Book.
VecMap. This little-used unstable collection has been moved to the
- Deprecate a number of unstable features. The list is sizable.
Box<[T]> where T: Clone
mem::forgetsafe. This closes some corner-case soundness holes in reference counting.
- More extended errors!.
- Add a
--cap-lintsflag to the compiler. This flag will be used by Cargo to avoid breaking dependencies when lints change.
- Rewrite dropck to be more correct.
- Improve SipHash performance for longer data.
- Stabilize a number of small APIs.
- Gate associated type defaults. 1.1 stable mistakenly allowed default associated types to be written, but their use was completely broken. With other outstanding questions about the feature it has been gated for 1.2.
- Agoston Szepessy
- Andrew Kuchev
- Blake Loring
- Daniel Albert
- Jeehoon Kang
- Kieran Hunt
- Mark Buer
- Nicolette Verlinden
- Ralf Jung
- Taliesin Beynon
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
- Allow renaming imports when importing a group of symbols from a module..
- Clarify rules for projections and well-formedness.
- Introduce a mid-level IR (MIR) in the compiler.
- Update FOLLOW set for
- Improve ordered query API.
- Add item recovery collection APIs.
- Implement raw fat pointer comparisons.
#[must_use]on functions, rather than just types..
- Place left arrow syntax (
place <- expr). Another attempt at coming up with a pleasing 'placement new' syntax.
- Turn statically-known erroneous code into a warning and unconditional panic.
&'static mut T.
- Specify that
- 8/5. Montreal.
- 8/10. Seattle.
- 8/11. San Diego.
- 8/19. Los Angeles.
- 8/26. Columbus Rust Society.
- 8/31. Paris.
fn work(on: RustProject) -> Money
There are some jobs writing Rust! This week's listings:
- Assistant Researcher in Karlsruhe, Germany for embedded development on ARM stm32. Contact Oliver Schneider
Quote of the Week
It should be noted that the authentic Rust learning experience involves writing code, having the compiler scream at you, and trying to figure out what the heck that means. I will be carefully ensuring that this occurs as frequently as possible.
From @Gankro's Learning Rust With Entirely Too Many Linked Lists.
Thanks to @carols10cents for the tip. Submit your quotes for next week!.