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
- Announcing Rust 1.41.1.
- A half-hour to learn Rust.
- Recent and future pattern matching improvements.
- Cheap tricks for high-performance Rust.
- Understanding String and &str in Rust.
- caniuse.rs - Rust feature search.
- Async/await on embedded Rust.
- Audit of the RustCrypto
aes-gcm
andchacha20poly1305
crates by NCC group. - FFI patterns #1 - Complex Rust data structures exposed seamlessly to C++.
- Multidimensional arrays and operations with NDArray.
- A look into ways to implement and share data with interrupt handlers in Rust.
- Porting a JavaScript App to WebAssembly with Rust (Part 3).
- Pietro Albini has joined the core team.
- Announcing the first FFI-unwind project design meeting.
- Writing an OS in Rust: Updates in February 2020.
- rust-analyzer Changelog 14.
- IntelliJ Rust Changelog 117.
- This month in rustsim 9.
- Rust in Blockchain newsletter 9: The month of working from home.
- Tokio v0.2.12, includes
Notify
, an async/await synchronization primitive, andStreamMap
for dynamic merging of streams.
Crate of the Week
This week's crates is tokenizers, a Rust crate with python & nodejs bindings for fast text tokenization for machine learning.
llogiq (who singlehandedly selected the crate) is pretty self-congratulatory.
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.
- The RustConf 2020 CFP is now open. We'd love to hear from you at RustConf!
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
304 pull requests were merged in the last week
- implement Associated Type Defaults (RFC #2532)
- don't
bug
when taking discriminant of generator during dataflow - perf: buffer stderr when writing json errors/warnings
- mark attributes consumed by
check_mod_attrs
as normal - stash API: remove panic to fix ICE
- chalk: changes needed to build in rustc
- adjust Miri value visitor, and doc-comment layout components
- miri: let machine canonicalize AllocIDs
- fail on multiple declarations of
main
- don't instantiate so many copies of
drop_in_place
- mark other variants as uninitialized after switch on discriminant
- skip
Drop
terminators for enum variants without drop glue - audit liballoc for leaks in
Drop
impls when user destructor panics - add primitive module to libcore
- relax str::get_unchecked precondition to permit empty slicing
- fix aliasing violation in
align_to_mut
- add methods to 'leak' RefCell borrows as references with the lifetime of the original reference
- stabilize
boxed_slice_try_from
BTreeMap
navigation done safer & faster- constify mem::forget
- crates.io: enable sorting crates by most recently added
- rustlings: add clippy lints
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
- [disposition: merge] Cargo report future-incompat.
- [disposition: merge] Add llvm_asm! and deprecate asm!.
Tracking Issues & PRs
- [disposition: merge] Permit attributes on 'if' expressions.
- [disposition: merge] mem::zeroed/uninit: panic on types that do not permit zero-initialization.
New RFCs
Upcoming Events
Asia Pacific
Europe
- Mar 9. Karlsruhe, DE - Rust Meetup
- Mar 11. Oslo, NO - Rust Oslo - Lightning talks.
- Mar 12. Turin, IT - Mozilla Torino - Gruppo di studio Rust alla Torino hacknight.
- Mar 19. Warsaw, PL - Rust Warsaw 4.
- Mar 19. Berlin, DE - OpenTechSchool Berlin - Rust Hack and Learn.
North America
- Mar 10. Denver, CO, US - Rust Boulder/Denver - March Meetup.
- Mar 10. Redmond, WA, US - Seattle Rust Meetup - Monthly meetup in Redmond.
- Mar 11. Atlanta, GA, US - Rust Atlanta - Grab a beer with fellow Rustaceans.
- Mar 11. Houston, TX, US - Houston Linux Users Group - Rust Study Group.
- Mar 11. Portland, OR, US - PDXRust - Rust Lightning Talks! By You.
- Mar 12. Columbus, OH, US - Columbus Rust Society - Monthly Meeting.
- Mar 12. Lehi, UT, US - Utah Rust - The Blue Pill: Rust on Microcontrollers.
- Mar 12. San Diego, CA, US - San Diego Rust - March Meetup.
- Mar 18. 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
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Hi, fellow Crustaceans! I am a newbie of Rust programming language. A nauplius.
Thanks to Tom Phinney for the suggestions!
Please submit quotes and vote for next week!