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
- Porting C to Rust, a case study: minimp3.
- Lessons learned on writing web applications completely in Rust.
- comacro: a declarative building block for static analysis.
- Oxidizing Python: Speeding up URL quoting by 10x using Rust.
- GLSL quasiquoting in Rust.
- Going four times faster using multi-threading.
- Bluetooth Low Energy with Rust.
- Hunting for bugs in Rust.
- Who authors the most popular crates on crates.io?
- Rust's story for default arguments.
- Remacs continues to improve.
- Future directions for cbindgen (rust-ffi).
- The Embedded WG newsletter 13.
Crate of the Week
This week's crate is pest, a Parsing Expression Grammar-based parser library. Thanks to CAD97 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.
- Announcing the Tokio doc blitz effort, we need your help!
- Rust Web Survey from Networking Services WG.
- The imag project calls for contributors.
- macro_railroad: Update the parser for syn-0.15. macro_railroad is a library to generate syntax diagrams for Rust macros.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
136 pull requests were merged in the last week
- merge
proc_macro_
expansion feature gates asproc_macro_hygiene
- proptest basic validation
- allow both explicit and elided lifetimes in the same impl header
- do not promote comparing function pointers
- nest the
impl Trait
existential item inside the return type - do not normalize all non-scalar constants to a ConstValue::ScalarPair
- fix dead code lint for functions using
impl Trait
- add suggestion for inverted function parameters
- suggest to use self for fake-self from other languages
- NLL: improve move error loop detection
- make NLL suggest "try removing
&mut
here" - introduce
TyKind::UnnormalizedProjection
- stabilize
min_const_fn
- improve error message when trying to move from an Rc or Arc
- revisit work on cvoid
- fix Once perf regression
- make
CStr::from_bytes_with_nul_unchecked()
a const fn - std: start implementing wasm32 atomics
- make
spec_extend
usefor_each()
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 2539:
#[cfg_attr]
expanding to multiple attributes. - RFC 2412: The optimize attribute.
- RFC 2535: Or patterns, i.e
Foo(Bar(x) | Baz(x))
. - RFC 2526: Support underscores as constant names.
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] Formatting guidelines.
- [disposition: merge] Union initialization and Drop.
Tracking Issues & PRs
- [disposition: merge] Support for disabling PLT for better function call performance.
- [disposition: close] Introduce the
Result::into_inner
method.
New RFCs
No new RFCs were proposed this week.
Upcoming Events
Online
- Oct 17. Rust Community Team Meeting in Discord.
- Oct 22. Rust Community Content Subteam Meeting in Discord.
- Oct 24. Rust Events Team Meeting in Telegram.
Asia
Europe
- Oct 17. Madrid, ES - Quinto meetup de MadRust.
- Oct 17. Berlin, DE - Berlin Rust Hack and Learn.
- Oct 18. Oslo, NO - Fuzzing and property-based testing in Rust.
- Oct 18. Cambridge, GB - Cambridge Rust Meetup.
- Oct 25. Wroclaw, PL - Rust Wroclaw Meetup.
North America
- Oct 11. Arlington, US - Rust DC - Mid-month Rustful.
- Oct 11. Columbus, US - Columbus Rust Society - Monthly Meeting.
- Oct 11. Utah, US - Utah Rust monthly meetup.
- Oct 14. Mountain View, US - Rust Dev in Mountain View!.
- Oct 17. Vancouver, CA - Vancouver Rust meetup.
- Oct 19 & 20. Ann Arbor, US - Rust Belt Rust 2018.
- Oct 20 & 21. Vancouver, CA - Vancouver Rust Hackathon.
- Oct 21. Mountain View, US - Rust Dev in Mountain View!.
- Oct 22. Durham, US - Triangle Rustaceans.
- Oct 23. Chicago, US - The Rust Ecosystem: What to Know After "Hello World".
- Oct 24. Zurich, CH - Rust Zurich - Atomics.
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
- Software Engineer - Backend at Watchful, San Francisco.
- Rust Engineer at Standard Cognition, San Francisco.
- Rust Software Engineer at IOHK (Remote work available).
- Compilers & distributed systems engineers in Australia.
- Rust Developer at Parity, Berlin, DE.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Rust is a Fast Programming Language. Rust programs are therefore “fast,” especially so if you write them with the correct observations to the arcane ley lines of birth and death known as “lifetimes,” and also remember to pass cargo the
--release
flag.
– Adam Perry blogging about lolbench
Thanks to Pascal Hertleif for the suggestion!
Please submit your quotes for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.