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
- Fun facts about Rust's growing popularity.
- Cargo alternative registries.
- A game developer's experience with writing a plant simulation game in Rust.
- A brief history of Rust.
- The Expressive C++17 coding challenge… in Rust.
- Announcing bindgen 0.31.0.
- Pleco: Creating a Chess engine with Rust.
- Swagger.io can now autogenerate Rust servers from OpenAPI specifications.
- This week in Rust docs 79.
- [podcast] Rusty Spike Podcast - Episode 5. A new game written in Rust, improvements to WASM support, a JIT compiler in Rust, and Gstreamer support in Servo.s
Crate of the Week
This week's crate is cargo-outdated, a cargo subcommand that shows outdated dependencies including latest compatible and latest version. Thanks to Colin Kiegel 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.
- Contribute to Rust's 2017 impl period.
- Call for help: Cargo "airplane" mode. (GitHub issue)
- stdsimd: Implement all x86 vendor intrinsics.
- stdsimd: Implement all ARM NEON intrinsics.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
111 pull requests were merged in the last week
- ci: upgrade Android SDK/NDK and refactor to use sdkmanager/avdmanager
- implement RFC 1861: Extern types
- avoid unnecessary copies of arguments that are simple bindings
- add short error message-format
- add several lints into
unused
lint group - resolve types properly in const eval
- create NormalizeTy query
crate
shorthand visibility modifier- move Generics from MethodSig to TraitItem and ImplItem
- add generics to LateContext
- don't emit the same compiler diagnostic twice
- improve diagnostics when list of tokens has incorrect separators
- use 128 bit instead of Symbol for crate disambiguator
- remove dependency tracking for variance computation
- implement Hash for raw pointers to unsized types
- visit attribute tokens in
DefCollector
andBuildReducedGraphVisitor
- remove deprecated
collections
crate - fix 32- vs 64-bit platform instability in StableHasher
- std: optimize thread park/unpark implementation
- std: disable usage of mmap allocator in libbacktrace
- add current_pid function
- cargo: add unit test checking to
cargo check
- cargo: improving the error message for when a patched dependency does not resolve to anything
- cargo: alternative registries
- rustdoc: Show src button and function version on mobile version
New Contributors
- Dustin Speckhals
- Igor Matuszewski
- John Paul Adrian Glaubitz
- Josh Leeb-du Toit
- Laurent Arnoud
- Nadav Zingerman
- Paul Liétar
- Thayne McCombs
- Virgil Palanciuc
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. This week's FCPs are:
- [disposition: merge] Fallible collection allocation 1.0.
- [disposition: merge] Implicit caller location (third try to the unwrap/expect line info problem).
- [disposition: merge] Unsized rvalues.
- [disposition: merge] eRFC: Cargo build system integration.
- [disposition: merge] Type privacy and private-in-public lints.
New RFCs
Upcoming Events
- Nov 2. Live AMA with Rust Core Team members.
- Nov 2. Rust Bay Area - Zero Knowledge Proof Macros and Cernan (data pipelining).
- Nov 2. Rust release triage.
- Nov 4. Rust Bangalore - Rust Concurrency Workshop.
- Nov 5. DevFest Ahmedabad 2017: Dive Into Rust.
- Nov 8. Rust Roma - Rust learning and hacking evening #3.
- Nov 8. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Nov 8. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org.
- Nov 9. Rust DC - Mid-month Rustful.
- Nov 9. Columbus Rust Society - Monthly Meeting.
- Nov 9. San Diego Rust November Meetup - Beginner's Training Session.
- Nov 13. Seattle Rust Meetup - Monthly meetup.
- Nov 15. OpenTechSchool Berlin - Rust Hack and Learn.
- Nov 15. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Nov 15. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org.
- Nov 16. Cambridge Rust Meetup #5.
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
- Software Engineer at Fortanix, Mountain View, CA, US
- Distributed Application Developer at Sphere Identity, Auckland, NZ.
- Full-time Rust position at Commure, San Francisco, US.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
I feel like I'm doing something wrong because I'm programming faster and nothing has gone wrong yet
Thanks to @llogiq for the suggestion!