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, llogiq, and brson.
Updates from Rust Community
News & Blog Posts
- Mozilla awards MIO $30k as part of MOSS program.
- Rust for Node developers. An introduction to the Rust programming language for Node developers.
- Using Gaussian Mixture Models in Rust.
- Interior mutability in Rust, part 2: thread safety.
- Shipping forgettable microservices with Rust.
- Rust for Node.js developers - Part 2 - Can I borrow that?
- [podcast] New Rustacean interview 2. Raph Levien on using Rust to build the Xi editor.
New Crates & Project Updates
- Announcing Overflower. A Rust compiler plugin and support library to annotate overflow behavior.
- rustup 0.2 released. This release includes the ability to set the toolchains' default host, and the experimental reintroduction of hyper with TLS and proxy support.
- play.rust-lang.org was rewritten in Rust.
- Rust Project changelog for 2016-06-24. New releases of net2, rustup, rust.vim, improvements to the websites.
- The Dyon scripting language improved its parser, has closures and grab expressions.
- Cursive. A ncurses-based UI library for Rust.
- slog-rs. Structured, composable logging for Rust.
- cargo-modules. A cargo plugin for showing a tree-like overview of a crate's modules.
- syntect. Syntax highlighting library for Rust that uses Sublime Text syntax definitions.
- This week in Servo 68.
- This week in Servo 69.
- This week in Rust docs 9.
- This week in Rust docs 10.
- This week in Ruma, 2016-06-19.
- This week in Ruma, 2016-06-26.
Crate of the Week
User jkcclemens suggested his own bins crate that lets us programmatically create pastebins and is now our Crate of the Week! Thanks, jkcclemens!
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: List all available ABI strings in reference.md.
- [easy] rust: Expose the discriminant_value intrinsic.
- [easy] rustup: "target list" shows unavailable toolchains.
- [easy] rustup:
rustup update
help is somewhat inaccurate. - [easy] rustup: Add
rustup man
.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
76 pull requests were merged in the last two weeks.
CharRange
is gone,pthread_t
is stable- Macros are hygienic again (beta/nightly)
thread::sleep(_)
can now sleep really long (Sleeping Beauty has nothing on us, folks 😴)MultiItemModifier
may now return zero or more itemsthread_local!(..)
accepts multiple bindingsassert_eq!(..)
now accepts an optional custom error message- no more
return_address
intrinsic (possibly breaking change, though crater is happy) - The playground backend is now written in Rust (it actually was a python script before, yay for dogfooding!)
New Contributors
- Alexander Stocko
- cgswords
- Fabian Vogt
- Joseph Dunne
- Mitsunori Komatsu
- Nathan Moos
- Nikhil Shagrithaya
- Paul Jarrett
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- RFC 1618: Remove the one-type-only restriction on
format_args!
arguments. - RFC 1522: Add a initial, minimal form of
impl Trait
.
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:
- Refine the unguarded-escape-hatch from RFC 1238 (nonparametric dropck).
- Introduce more conventions around documenting Rust projects.
- RFC process for formatting style and Rustfmt defaults.
New RFCs
- Const-dependent type system (also known as, Π-types and value-types).
- Revisiting specialization: Complementary traits.
- Introduce a new type
MoveCell<T>
instd::cell
. - Introduce non-panicking borrow methods on
RefCell<T>
. - Allow
::/
as a prefix in documentation links to indicate a module-relative link.
Upcoming Events
- 6/29. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- 6/29. Rust Dublin - Error handling in Rust.
- 6/29. Rust Hack and Learn.
- 6/30. Zurich, Switzerland - Introduction to Rust.
- 7/6. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- 7/7. Rust DC: Ownership and Borrowing.
- 7/11. 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!
Quote of the Week
<ketralnis> Rust is also really phobic of heap allocations […] <Xion> Yes, Rust encourages everyone to be a full stack developer :)
Thanks to Matt Brubeck for the suggestion.