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 a pull request. 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.
Updates from Rust Community
News & Blog Posts
- Rust's 2018 roadmap.
- Rust is the most loved language for 3 years in a row in Stack Overflow Developer Survey.
- Writing an OS in pure Rust.
- Announcing the Tokio runtime.
- Redefining failure: Review of failure crate.
- Announcing Rust Compiler Performance Working Group.
- Announcing Rust Portability Working Group.
- Snips open sources Snips NLU - a Natural Language Understanding service written in Rust.
- Announcing relibc: A libc implementation in Rust.
- Exploring function overloading.
- Coping with mutable state in multiple threads with Rust.
- Crashing a Rust Hyper server with a denial of service attack.
- This week in Rust docs 96.
- [podcast] Rusty Spike Podcast - episode 22. Rust 1.24.1, the 2018 roadmap, compile times, SIMD, and Pathfinder.
Crate of the Week
This week's crate is cursive, a library for easy text-user interface applications. Thanks to Wangshan Lu for the suggestion.
Submit your suggestions and votes 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.
- Get started with these beginner-friendly issues.
- [good first issue] tera: Add loop controls. Tera is a template engine for Rust based on Jinja2/Django.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
124 pull requests were merged in the last week
- replace all const evaluation with miri (epic PR)
- replace internal iterator structures with
impl Trait
- NLL: Make causal tracking lazy
- turn feature-gate table into a query so it is covered by dependency tracking
- Warn about ignored generic bounds in
for
- show used type variable when issuing a "can't use type parameters from outer function" error message
- suggest type for overflowing bin/hex-literals
- add functionality for gating feature flags on epochs; rejigger epoch lints
- optimize
str::repeat
- add functions for reversing the bit pattern in an integer
- implement
FromStr
forPathBuf
- stabilize FusedIterator
New Contributors
- 1011X
- Kurtis Nusbaum
- Maxim Nazarenko
- Peter Lyons
- Songbird0
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 2341: Allow locals and destructuring in const fn.
- Update the disambiguation handling in RFC 1946 (intra-rustdoc-links) to match impl concerns.
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:
- [disposition: merge] Standard library API for immovable types.
- [disposition: merge] Add Euclidean modulo & division functionality for integers.
- [disposition: merge] Constants in array repeat expressions.
- [disposition: merge]
Self
in type definitions allowingenum List<T> { Nil, Cons(T, Box<Self>) }
. - [disposition: merge] Add std::num::NonZeroU32 and friends, deprecate core::nonzero.
- [disposition: merge] Allow
if
andmatch
in constants. - [disposition: close] Make Cargo aware of standard library dependencies.
- [disposition: close] Quick
dbg!(expr)
macro.
New RFCs
Upcoming Events
The community team is trying to improve outreach to meetup organisers. Please fill out their call for contact info if you are running or used to run a meetup.
- Mar 15. Hamburg, DE - Rust Hack & Learn with a Sprinkle of Web Assembly.
- Mar 15. Cambridge, GB - Cambridge Rust Meetup.
- Mar 16. Frankfurt, DE - Rust Table of Regulars.
- Mar 16. Pune, IN - Rust Hacks at Cummins.
- Mar 17. Chennai, IN - Monthly Meetup - March.
- Mar 18. Bangalore, IN - Rust for newbies (Part 5 of 12).
- Mar 18. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Mar 19. London, GB - LDN Talks: March 2018.
- Mar 19. Karlsruhe, DE -`Hack and Meet.
- Mar 21. Berlin, DE - OpenTechSchool Berlin - Rust Hack and Learn.
- Mar 21. Vancouver, CA - Rust Study/Hack/Hang-out night.
- Mar 21. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Mar 22. Rust release triage.
- Mar 25. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Mar 27. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org.
- Mar 27. Kitchener, CA - An Introduction To Rust & Writing a Crate (Kahan Sums).
- Mar 28. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Mar 28. Rust Events Team Meeting.
If you are running a Rust event please add it to the calendar to get it mentioned here. Email the Rust Community Team for access.
Rust Jobs
- Librsvg and Gnome-class accepting interns.
- Senior Computing Engineer at Marginal Unit.
- Senior Data Engineer at Marginal Unit.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Captain's log, day 21
We have sailed on Reddit and Twitter for three weeks now, searching far and wide, yet the only thing we found was a barren landscape, with no end in sight. The supplies are shrinking, the men are growing impatient and hungry, and I fear we will have a mutiny soon. But I am stubborn and optimistic, and urge them to hold on and keep waiting until we find a quote of the week.
— u/SelfDistinction on reddit.
Thanks to u/nasa42 for the suggestion!