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.
This Week in Rust is openly developed on GitHub. If you find any errors in this week's issue, please submit a PR.
This week's edition was edited by: nasa42, llogiq, and brson.
Updates from Rust Community
News & Blog Posts
- State of Rust survey 2016.
- rust-brotli: Lossless compression with Brotli in Rust.
- A toy front-end for LLVM, written in Rust.
- First steps in Rust. Early impressions of Rust from the perspective of a C, C++ and Python coder.
- Attention! Span. Llogiq on
syntax::codemap::Span
, Rust's interface between macros and lints. - Implementing an IMAP client in Rust.
- [podcast] New Rustacean interview. Raph Levien on Rust's current strengths and places it can improve.
- [video] Shar Bringer. Demo of a video game written entirely in Rust. (Discussion thread).
New Crates & Project Updates
- Servo nightly builds are now available.
- clap-rs can now generate Bash tab-completion scripts at compile time
- Thrussh. Portable SSH client and server library.
- Rust Playground Reimplementation. An alternate implementation of the Rust Playground.
- Rust on Tessel. Example of using Rust development on Tessel 2.
- S.U.P.E.R. Android Analyzer. An Android applications vulnerability analyzer written in Rust.
- Takkerus. A Tak AI and board in the Rust language.
- envy. Deserialize env vars into typesafe structs.
- This week in Rust docs 11.
- This week in Ruma - July 03, 2016.
- What’s coming up in imag (10).
Crate of the Week
This week's Crate of the Week is Kerosene2000's reustmann a Von-Neumann Architecture written in Rust. This is presumably useful as a base substrate to train genetic algorithms on. Thanks, Kerosene2000!
Submit your suggestions 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.
- [easy] rust: Make
-O
and-C opt-level
override each other. - [easy] rust: Fix error about multiple
--emit
targets. - [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-exapmle: Add an Arc chapter.
- [easy] rustup: Print new rustup version during
self update
.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
103 pull requests were merged in the last two weeks.
- Release Notes for 1.10 (if you want to know early)
- Beta is now more lenient with regards to Clang version
- MultiDecorators are now a special case of MultiModifiers (also some cleanup)
- Methods that require
Self: Sized
are no longer in the vtable (breaking change, also on beta) - There can be only one...
Path
(plugin-breaking) - Paren-expressions now share their child node's IDs (simplifies lookup)
ThinAttributes
are now aThinVec<Attributes>
(plugin-breaking)Cow
s byDefault
now own their target type'sDefault
- Trait items can now be macro-expanded
- MIR: Dominators (control flow graph)
- Looking up hosts is now more picky about addresses
HashMap
s now use SipHash-1-3 hasher by default- obligation errors now transitive (fix some memory leaks)
- More robust metadata lock (also in beta)
New Contributors
- Aaronepower
- Alexander Merritt
- CensoredUsername
- gnzlbg
- Jonathan L
- Jonathan Price
- Jupp Müller
- Peter Landoll
- Tatsuya Kawano
- Will Crichton
- 吴冉波
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:
- Default and expanded errors for rustc.
- RFC process for formatting style and Rustfmt defaults.
- Introduce more conventions around documenting Rust projects.
- Add space-friendly arguments. Add
-C link-arg
and-C llvm-arg
which allow you to pass along argument with spaces. - Add a used attribute to prevent symbols from being discarded.
- Refine the unguarded-escape-hatch from RFC 1238 (nonparametric dropck).
New RFCs
- Propose asserts. This rfc proposes that the following macros be added:
assert_gt
,assert_lt
,assert_ge
, andassert_le
. - Clarify behaviour when writing to a union field that implements Drop.
- Windows subsystem support.
- Extend the
Hasher
trait withfn delimit
to support one-shot hashing.
Upcoming Events
- 7/6. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- 7/6. Rust Cologne/Bonn: Open Night.
- 7/6. Symfony User Group Cologne - Rust für PHP Entwickler.
- 7/7. Rust DC: Ownership and Borrowing.
- 7/11. Seattle Rust Meetup.
- 7/12. (San Diego) Eat– Drink– Rust! Downtown Rust Meetup.
- 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.
If you are running a Rust event please add it to the calendar to get it mentioned here. Email Erick Tryzelaar or Brian Anderson for access.
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.