2016-07-12

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

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 create was selected for CotW.

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] 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 --dry-run to cargo publish.

[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-exapmle: Add an Arc chapter.

[easy] imag: Make imag forward --debug and --verbose to subcommands.

[moderate] imag: Add Iterator-shortcut for iter.fold(Ok(()), ...).

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.

New Contributors

CrLF0710

Hariharan R

Ivan Nejgebauer

Jared Manning

Kaivo Anastetiks

Mike Hommey

Phlogistic Fugu

Sam Payson

Ximin Luo

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 1327: Dropck Eyepatch. Refine the unguarded-escape-hatch from RFC 1238 (nonparametric dropck).

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.

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.

Add global_asm! for module-level inline assembly.

Exclude macros from importing with #[macro_use(not(...))].

Add space-friendly arguments. Add -C link-arg and -C llvm-arg which 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.

New RFCs

Add an unwrap! macro.

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.

Upcoming Events

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.

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

Rust developer at The Blackbird.

Engineering positions at Zcash mention Rust.

Tweet us at @ThisWeekInRust to get your job offers listed here!

Quote of the Week

No quote was selected for QotW.

Submit your quotes for next week!

Show more