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 2018 Preview 2. [discuss]
- Announcing the RLS 1.0 release candidate. [discuss]
- How Rust’s standard library was vulnerable for years and nobody noticed. [discuss]
- Safe partial initialization in Rust. [discuss]
- With undefined behavior, anything is possible. [discuss]
- Rust GraphQL webserver with Warp, Juniper, and MongoDB. [discuss]
- Programming Servo: Anatomy of a fetch. [discuss]
- Thanks for asking. An analysis of questions that are asked on r/rust subreddit. [discuss]
- This week in Rust and WebAssembly 6. [discuss]
- [podcast] New Rustacean news: Rust 1.28. [discuss]
Crate of the Week
This week's crate is wasm-bindgen-futures, a crate to make ECMAScript promises and Rust futures interoperate. Thanks to Vikrant 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.
- Call for help building a distributed filesystem in Rust.
- [easy] rustc: mark applicability of diagnostic suggestions.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
157 pull requests were merged in the last week
- the Great Generics Generalisation: HIR Followup
- implement Unsized Rvalues
- add bare-metal aarch64 target
debug_assert
to ensure thatfrom_raw_parts
is only used properly aligned- do not suggest conversion method that is already there
- export WASM table by default
- fix usage of
wasm_target_feature
- syntax: enforce attribute grammar in the parser
- move SmallVector and ThinVec out of libsyntax
- resolve: crates only exist in the type namespace
#[feature(uniform_paths)]
: allowuse x::y;
to resolve throughself::x
, not just::x
Self
in type definitions (RFC #2300)- rustc_codegen_llvm: restore the closure env alloca hack for LLVM 5
- make LLVM emit assembly comments with
-Z asm-comments
- unions are not always trivially dropable
- cause cycle err on inf trait normalization
- NLL: optimize reassignment immutable state
- speed up NLL with
HybridIdxSetBuf
TokenStream::extend
(awesome speedups!)- don't accept non-string literals for the format string in writeln
- add the identity function as core::convert::identity (RFC #2306)
- don't panic on
std::env::vars()
when env is null - use
target_pointer_width
forBACKTRACE_ELF_SIZE
- non-naive implementation of
VecDeque.append
- stabilize
use_extern_macros
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 2504: Fix the Error trait.
- RFC 2351: Add
is_sorted
to the standard library. - RFC 2229: Closures Capture Disjoint Fields.
- RFC 1892: Deprecate uninitialized in favor of a new MaybeUninit type.
- RFC 2306: Add
pub fn identity<T>(x: T) -> T { x }
tocore::convert
.
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] eRFC: if- and while-let-chains, take 2.
- [disposition: merge] Unify std::os::raw::c_void and libc::c_void via libcore.
Tracking Issues & PRs
- [disposition: merge] Add Error::source method per RFC 2504..
- [disposition: merge] Tracking issue for integer types conversion to and from byte arrays.
- [disposition: merge] Tracking Issue for Iterator::find_map.
- [disposition: merge] Allow all literals in attributes (Tracking Issue for RFC #1559).
- [disposition: merge] Tracking issue for RFC#1685: Deprecate anonymous parameters.
- [disposition: close] Define non-panicking UTF encoding methods on
char
.
New RFCs
Upcoming Events
Online
- Aug 28. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org.
- Aug 29. Rust Events Team Meeting in Telegram.
- Aug 29. Rust Community Team Meeting in Discord.
- Sep 5. Rust Community Team Meeting in Discord.
Africa
- Aug 25. Nairobi, KE - Rustbridge Workshop at GirlsCode.
- Sep 4. Johannesburg, ZA - Monthly Meetup of the Johannesburg Rustaceans.
Asia
Europe
- Sep 4. Brussels, BE - #3 futures/async/tokio && Gotham-rs.
- Sep 5. Berlin, DE - Berlin Rust Hack and Learn.
North America
- Aug 26. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Aug 27. Durham, US - Triangle Rustaceans - Project Night & Lightning Talks.
- Aug 28. Chicago, US - Rust Meetup.
- Aug 28. Dallas, US - Rust Meetup.
- Sep 2. Mountain View, US - Open Table / Icebreaker: what projects are you working on.
- Sep 5. Indianapolis, US - Indy.rs.
- Sep 5. Atlanta, US - Grab a beer with fellow Rustaceans.
- Sep 5. Vancouver, CA - Rust Study/Hack/Hang-out night.
South America
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
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
I made a thing to test building every possible Rust program...eventually.
Please submit your quotes for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.