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? Send me an email! Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub. If you find any errors or omissions in this week's issue, please submit a PR.
This week's issue covers the previous two weeks.
What's cooking on master?
266 pull requests were merged in the last two weeks, and 10 RFC PRs.
Now you can follow breaking changes as they happen!
Breaking Changes
- Update orphan and overlap rules for RFC 1023.
- Lex binary and octal literals more eagerly.
- Remove IteratorExt.
- Move
thread_local
intothread
. - Stabilize
std::convert
and related code. - Stabilize the rest of Any/BoxAny.
- Remove FromError, use From
instead . - Don't reborrow the target of a
write!()
. - Remove variances from traits and deprecate
PhantomFn
/MarkerTrait
. - Feature gate rust-call ABI.
- Stabilize basic timeout functionality.
- Change the meaning of the count to splitn.
Other Changes
- Add associated types support to #[derive(..)].
- Entry API v3: replace Entry::get with Entry::default and Entry::default_with.
- Add
std::net::lookup_addr
for reverse DNS lookup. - Add support for
extern crate foo as bar
. - Add net::IpAddr, destabilize lookup_host.
- Arc::try_unique, Rename Arc::try_unique to get_mut.
- Add (unstable) FnBox trait as a nicer replacement for
Thunk
. - Re-add min_value, max_value methods.
- Work toward a non-panicking parser.
New Contributors
- Adenilson Cavalcanti
- Alex Quach
- Andrew Hobden
- Augusto Hack
- bcoopers
- Camille Roussel
- Carlos Galarza
- Ches Martin
- Dan Callahan
- Dan W.
- Darin Morrison
- Drew Crawford
- Emeliov Dmitrii
- Germano Gabbianelli
- github-monoculture
- Huachao Huang
- Jordan Woehr
- Julian Viereck
- kgv
- Liam Monahan
- Mark Mossberg
- Nicholas Mazzuca
- Or Neeman
- ray glover
Approved RFCs
- RFC 879: Lex binary and octal literals more eagerly.
- RFC 888: Compiler fences.
- RFC 911: Const functions and inherent methods.
- RFC 979: Align the count parameter of splitn with other languages.
- RFC 1011: Add std::process::exit.
- RFC 1023: Rebalancing coherence.
New RFCs
- Generic boolean operators.
- Don't panic when stdout doesn't exist.
- Add read_into_buf and get_buf to BufRead.
- Change abs to return unsigned integers.
- Automatically derive {Clone,PartialEq,PartialOrd} when {Copy,Eq,Ord} are derived.
- 1.0 prelude additions.
- RFC: Rename
Iterator::size_hint
toIterator::len_hint
. - Duration.
- Explicit multi-char case changes.
Notable Links
- Rust 1.0.0 beta is here.
- Newcomer to Rust: My experience.
- Use rust-gdb and rust-lldb for improved debugging.
- Proposal: spend most of the beta period not writing new features.
- TDD example in Rust with Prime Factors kata.
- Rust FFI: Embedding Rust in projects for safe, concurrent and fast code anywhere.
- Weekly-meetings/2015-03-31: unqualified associated items, feature-gating unsigned negation, trivial cast lint, trait variance, coherence updates, as and overflow, beta.
- Rust docs on GitHub pages via Travis.
- Experimenting with Rust on iOS.
- The Sunset of C and C++.
- Collective noun for Rust programmers.
- Creating a PHP extension in Rust.
- Why did you stop using Rust? Trick question - it's impossible to stop using Rust.
- Patina: A Formalization of the Rust Programming Language.
- Servo shell on Ubuntu 15.04 (video).
- Modeling graphs in Rust using vector indices.
- More Rust compared to C++.
- rust-lang/rust at 10,000 stars.
- Go vs. Rust vs. D vs. Crystal.
Project Updates
- A rendering of Ifrit in kvarkus's Claymore.
- Lightmapping and movement in XMPPWocky's vel0city.
- balisong is raytracing some 3D voxels.
- Mindjuice, a two-stage configurable brainfuck interpreter library.
- The Steam store rendered in Servo.
- llvm-sys. Independent bindings to LLVM.
- contain-rs. A new collections library that replaces collect-rs.
- RustNN. Neural networks.
- rust-unityscopes. Rust bindings to Unity scopes.
- Firefox Gecko and Servo rendering some sites.
- github-rust. Client for the GitHub API v3
- clog, a changelog generator, has updated to version 0.3.1.
- eventual. Futures and streams.
- serde 0.3.0, erickt's new serialization library, was released.
- SolidOak, the IDE in Rust, for Rust, now has binaries for Linux and OS X.
- delivery-cli. A CLI for Chef.
- servo-shell. An HTML-based UI for Servo.
- This Week in Servo 29.
- Mozilla's Rust-based Servo browser engine inches forward.
- capstone-rs. Rust bindings to the Capstone disassembly framework.
- rust-smallvec. Servo's small vector types.
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.
Quote of the Week
"Diagnostics are the UX of a compiler, and so they're deserving of the exact same care that is put into mobile app or Web design."
Declared by pcwalton on Hacker News.
Thanks to sanxiyn for the tip. Submit your quotes for next week!.