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 an email! Want to get involved? We love contributions.
Updates from Rust Community
News & Blog Posts
- Announcing Rust 1.10.
- Refining Rust's RFCs.
- Translating C to Rust using Corrode (and how you can help).
- Rust and Rest. Lessons Learned from talking to Sentry's HTTP API from Rust.
- Pairing cryptography in Rust.
- Shave some time from your Travis builds.
- Overview of open source game engines in Rust.
- Rust & Docker in production @ Coursera.
- Integer 32, a Rust consultancy startup by Carol Nichols and Jake Goulding.
New Crates & Project Updates
- Dyon 0.8 is released.
- Corrode. Automatic semantics-preserving translation from C to Rust.
- Rustls. A new, modern TLS library written in Rust.
- rulinalg. A linear algebra library in Rust designed for machine learning, extracted from rusty-machine.
- task-hookrs. A Rust library for writing taskwarrior hooks and general interfacing with taskwarrior.
- jsf. A simple JSON file store.
- This week in Rust docs 12.
Crate of the Week
No crate was selected for CotW.
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.
- [easy] cargo: Warn on duplicate entry points for libs and bins.
- [easy] cargo: Can't specify precise crate version if there are multiple versions.
- [easy] cargo: Add
- [easy] rust: E0502 not rendered correctly.
- [easy] rust: Move some tests into run-pass-valgrind.
- [moderate] rust: Convert compiler-rt builtins to a Rust crate.
- [moderate] rust: Teach rustc to print CPU, etc. features.
- [easy] rustfmt: Overlong function signatures.
- [easy] rustfmt: Overlong impl signatures.
- [easy] rust-by-example: Add a Mutex chapter.
- [easy] rust-by-example: Add an Arc chapter.
- [easy] imag: Make
- [moderate] imag: Add Iterator-shortcut for
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
100 pull requests were merged in the last two weeks.
- Implement workspaces in Cargo.
- Drive trans from the output of the translation item collector.
- std: Stabilize APIs for the 1.11.0 release.
- Update jemalloc to include a fix for startup issues on OSX 10.12.
- Cargo: Add support for RUSTDOCFLAGS.
- Add x86 intrinsics for bit manipulation (BMI 1.0, BMI 2.0, and TBM).
- Added a pretty printer for &mut slices.
- Use lazy iterator in vec/slice gdb pretty printers.
- Introducing TokenStreams and TokenSlices for procedural macros.
- Hariharan R
- Ivan Nejgebauer
- Jared Manning
- Kaivo Anastetiks
- Mike Hommey
- Phlogistic Fugu
- Sam Payson
- Ximin Luo
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- RFC 1327: Dropck Eyepatch. Refine the unguarded-escape-hatch from RFC 1238 (nonparametric dropck).
Final Comment Period
- Default and expanded errors for rustc.
- Dedicated strike team to resolve unsafe code guidelines.
- RFC process for formatting style and Rustfmt defaults.
- Introduce more conventions around documenting Rust projects.
- Allow all literals in attributes.
global_asm!for module-level inline assembly.
- Exclude macros from importing with
- Add space-friendly arguments. Add
-C llvm-argwhich allow you to pass along argument with spaces.
- Add support for 128-bit integers.
- Add a used attribute to prevent symbols from being discarded.
- Add language support for bitfields.
- Add an
- Semantic "private in public" enforcement. Enforce that public APIs do not expose private definitions at the semantic level, while allowing the use of private aliases and blanket implementations for convenience and automation.
- Disjointness based on associated types. During coherence checking, when determining if the receivers of two impls are disjoint, treat bounds with disjoint associated types as mutually exclusive bounds.
- 7/13. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- 7/13. Rust Boulder/Denver - Hello, Rust!.
- 7/14. Rust release triage at #rust-triage on irc.mozilla.org.
- 7/14. Columbus Rust Society: Monthly Meeting.
- 7/18. Rust Paris Meetup #30.
- 7/20. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
fn work(on: RustProject) -> Money
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
No quote was selected for QotW.