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
- My thoughts on Rust in 2016. By Nick Cameron.
- Making your open-source project newcomer-friendly.
- This Week In Servo 46.
- Compiling Rust to an Android target.
- ArcadeRS 1.11: Shooting bullets. Part of the series ArcadeRS 1.0: The project - a series whose objective is to explore the Rust programming language and ecosystem through the development of a simple, old-school shooter.
- GC and Rust part 2: The roots of the problem.
- [slides] Why I ❤ Rust. By Julia Evans.
- Discovering hardware topology in Rust.
- The scope of
unsafe
. - Two weeks of Rust - building a Memcache clone.
- Abstract return types, aka
impl Trait
. - RustBelt: Logical Foundations for the Future of Safe Systems Programming.
Notable New Crates & Project Updates
- Robigalia. A Rust userland and POSIX layer built on seL4.
- Flac. An implementation of FLAC, free lossless audio codec, written in Rust.
- Imageproc. An image processing library, in Rust.
- Heroku Buildpack for Rust.
- YouCompleteMe now supports Rust. YouCompleteMe is a fast, fuzzy, as-you-type code-completion engine built originally for Vim.
Updates from Rust Core
61 pull requests were merged in the last week.
See the triage digest and subteam reports for more details.
Notable changes
- Feature gate defaulted type parameters appearing outside of types.
- Make
".".parse::<f32>()
and".".parse::<f64>()
returnErr
. - Add
std::panic::propagate
. - Cross item dependencies, take 2. Adds dependency graph for incremental compilation.
- libstd: unix process spawning: fix bug with setting stdio.
- Add
OpAssign
toWrapping<T>
, etc. incore::num::wrapping
. - [MIR] Refine representation and translation of calls.
- Refactor and improve:
Arena
,TypedArena
.
New Contributors
- Anders Granlund
- BChip
- jonastepe
- Lawrence Woodman
- Matt Kraai
- Michael F. Lamb
- Mike Anderson
- Nathan
- Zach Panzarino
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:
src/grammar
for the canonical grammar of the Rust language.- Improve Cargo target-specific dependencies.
- Add a
IndexAssign
trait that allows overloading "indexed assignment" expressions likea[b] = c
. - Allow eliding more type parameters.
- Add an
alias
attribute to#[link]
and-l
.
New RFCs
- Provide native support for C-compatible unions, defined via a new keyword
untagged_union
. - Restrict constants in patterns.
- Add language support for bitfields.
- Variant types and untagged enums.
- Rewrite the
for
loop desugaring to use language items instead of hardcoded paths. - Extend atomic
compare_and_swap
.
Upcoming Events
- 1/12. Eat, Drink, Rust! San Diego Downtown Rust Meetup.
- 1/13. Copenhagen hackathon.
- 1/13. OpenTechSchool Berlin: Rust Hack and Learn.
- 1/13. Los Angeles Monthly Meetup - Happy New Year Hack Night.
- 1/14. Columbus Rust Society.
- 1/14. Rust São Paulo Meetup.
- 1/15. Rhein-Main Rust Meetup.
- 1/18. Rust Paris.
- 1/19. Rust Hack and Learn Hamburg @ Ponton.
- 1/21. SF Bay Area: Rust Concurrency and Parallelism.
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
- Rust Engineer at MaidSafe.
- Research Engineer - Servo at Mozilla.
- Senior Research Engineer - Rust at Mozilla.
- PhD and postdoc positions at MPI-SWS.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Crate of the Week
This week's Crate of the Week is crossbeam. This is a library of non-blocking data structures and synchronization primitives that makes writing concurrent programs easier and more efficient (both in terms of code and runtime).
Thanks to DroidLogician for the suggestion.
Submit your suggestions for next week!
Quote of the Week
Rustaceans are not very imaginative at naming things.
We try! and try!, but sometimes, we Err.
Thanks to msiemens for the suggestion.