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
- Writing an OS in Rust: async/await.
- rustc-dev-guide overview.
- Tokio: Reducing tail latencies with automatic cooperative task yielding.
- Introducing R2, a router in Rust.
- Goodbye, docs team.
- Traits working group 2020 sprint 1 summary.
- Specs and Legion, two very different approaches to ECS.
- Reducing memory consumption in librsvg, part 4: compact representation for Bézier paths.
- State machines in Rust.
- Macros vs rename.
- More advanced aspects of pattern matching in Rust.
- What constitutes a vulnerability?
- On generics and associated types.
- rust-analyzer changelog 18.
- IntelliJ Rust changelog 119.
- Rust in blockchain 10.
Crate of the Week
This week's crates is async-recursion, a macro to allow recursion in async functions.
Thanks to Zicklag 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.
- rust: Implement conversion traits for usize/isize together with a portability lint.
- This Week in Rust is looking for a new maintainer. (If you're interested, please fill this form).
- The RustConf 2020 CFP is now open. We'd love to hear from you at RustConf!
- dotenv-linter is looking for contributors.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
468 pull requests were merged in the last week
- permit negative impls for non-auto traits
- parser: recover on
...
as a pattern, suggesting..
- clean up debugging options
- evaluate repeat expression lengths as late as possible
- fix cycle error when emitting suggestion for mismatched
fn
type - fix smaller issues with invalid placeholder type errors
- fix incorrect pattern warning "unreachable pattern"
- account for bad placeholder types in where clauses
- tweak chained operators diagnostic
- remove const eval loop detector
- correctly normalize constants
- perf: avoid allocating a set on dep graph when the number reads are small
- refactor object file handling
#[track_caller]
oncore::ops::
{Index
,IndexMut
}- add
Result<Result<T, E>, E>::flatten -> Result<T, E>
- add copy bound to atomic & numeric intrinsics
- ASCII methods on
OsStr
- add
Wake
trait for safe construction ofWaker
s impl From<[T; N]> for Vec<T>
fold_self
andtry_fold_self
for Iterators- fix
TryEnterCriticalSection
return type - regex: add fast path for
c_char
- regex: improve allocation of
escape_into
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.
RFCs
No RFCs are currently in final comment period.
Tracking Issues & PRs
- [disposition: merge] Tracking issue for
{f32,f64}::to_int_unchecked
methods.
New RFCs
- Add a
trustme
keyword to define unsafe code blocks. - documentation-in-code-block-in-documentation.
- YieldSafe auto trait.
Upcoming Events
Online
- Apr 6. Auckland, NZ - Rust AKL - Using C Libraries in Rust.
- Apr 9. San Diego, CA, US - San Diego Rust - April 2020 Meetup.
- Apr 8. Zurich, CH - Rust Zurich - PyO3 and Rust - an experimental online meetup.
North America
- Apr 9. Columbus, OH, US - Columbus Rust Society - Monthly Meeting.
- Apr 15. Vancouver, BC, CA - Vancouver Rust - Rust Study/Hack/Hang-out night.
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Rust Jobs
- Infrastructure Engineer at Aleph Alpha, Heidelberg, Germany.
- Backend Engineer at Kraken Bitcoin Exchange, remote or in Oregon.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Meta-Comment: I started this topic as someone completely uninvolved in the rust project. It's very reassuring seeing the nature of the response. Even knowing how fantastic the Rust community is, I was still prepared to be met with at least a small element of condescension given the nature of this issue. I haven't felt any sense of it. It's amazing. Anyone that has impact on the community culture deserves credit: This sort of experience doesn't come from nowhere. It comes from a long history of many people nudging things in the right direction. Thank you.
Thanks to Josh Triplett for the suggestions!
Please submit quotes and vote for next week!