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: Vikrant and llogiq.
Updates from Rust Community
News & Blog Posts
- Introducing MIR.
- Myths and legends about integer overflow in Rust.
- How to run Ruby inside a Rust crate.
- Porting a Haskell graphics framework to Rust.
- Mapping over Arrays in Rust.
- Optimizing matrix multiplication in Rust.
- Multithreaded matrix multiplication in Rust - Part II.
- Segfaults are our friends and teachers.
- This week in Redox 14.
- This Week in Ruma 2016-04-24. Ruma is a Matrix client-server API written in Rust.
- The state of Rust docs.
Notable New Crates & Project Updates
- Rust project changelog for 2016-04-29. Updates to bitflags, lazy_static, regex, rust-mode, rustup, uuid.
- Xi Editor. A modern editor with a backend written in Rust.
- rure. A C API for the regex crate.
- cassowary-rs. A Rust implementation of the Cassowary constraint solving algorithm.
- Sapper. A lightweight web framework built on async hyper, implemented in Rust language.
- servo-vdom. A modified servo browser which accepts content patches over an IPC channel.
- rustr and rustinr. Rust library for working with R, and an R package to generate Rust interfaces.
- Rorschach. Pretty print binary blobs based on common layout definition.
Crate of the Week
This week's Crate of the Week is arrayvec, which gives us a Vec
-like interface over plain arrays for those instances where you don't want the indirection. Thanks to ehiggs for the suggestion!
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] Help improve DuckDuckGo's Rust-related searches.
- [easy] rust: Add error explanations for all error codes.
- [easy] servo/highfive: Add a comment when a PR receives a push.
- [easy] servo/devices: Minimize duplication for unsupported platforms.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
92 pull requests were merged in the last week.
- new
Entry::key()
method Clone::clone()
no longer deep-clonesCopy
typesIPV6_V6ONLY
removed (breaking change!)-Z save_analysis
now uses JSON formattrans::collector
improvementspub(restricted)
on tuple struct fields- simplify AST→HIR lowering by removing reproducibility
- New "Rust Friends" page
New Contributors
- Andy Russell
- Brayden Winterton
- Demetri Obenour
- Ergenekon Yigit
- Jonathan Turner
- Michael Tiller
- Timothy McRoy
- Tomáš Hübelbauer
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:
- Float-free libcore.
as_millis
function onstd::time::Duration
.- Add
TryFrom
andTryInto
traits. - Add workspaces to Cargo.
- Specifying that
<T as Clone>::clone(&t)
whereT: Copy
should be equivalent toptr::read(&t)
. - Proposal for thread affinity.
- Add
#[repr(align = "N")]
.
New RFCs
- Introduce
dyn
keyword. - Amend RFC 1268 with a more feasible proposal post-specialization.
- Associated type constructors (a form of higher-kinded polymorphism).
Upcoming Events
- 5/4. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- 5/4. OpenTechSchool Berlin: Rust Hack and Learn.
- 5/4. Cologne / Germany: Rust Anniversary Meetup.
- 5/4. Wellington Rust meetup.
- 5/5. Rust London Meetup #5 at Mozilla London.
- 5/5. Rust Sydney Hack-night.
- 5/9. Seattle Rust Meetup.
- 5/10. (San Diego) Eat– Drink– Rust! Downtown Rust Meetup.
- 5/10. Rust NYC: Systems Programming (in Rust) and Tasting (in Beer).
- 5/11. Rust Boulder/Denver Monthly Meeting.
- 5/11. Rust LA Monthly Meetup - Hack Night.
- 5/12. Columbus Rust Society.
- 5/12. Rust Bay Area.
- 5/13. Rust Meetup Darmstadt.
- 5/13. Hack Chiapas, Autonomous University of Chiapas, Mexico.
- 5/16. Rust Paris.
- 5/17. Moscow Rust Conference.
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
In general, enough layers of Rc/RefCell will make anything work.
Thanks to birkenfeld for the suggestion.