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: Brian Anderson, Vikrant Chaudhary
From the Blogosphere
- Rust in Detail: Writing Scalable Chat Service from Scratch.
- Reading Rust Function Signatures. How to read function signatures and extract information from them.
- Collecting Results from Collections. Use
.collect()
to transformVec<Result<()>>
intoResult<Vec<()>>
. - Easier libc in Rust. An index of some of the most commonly used libc calls and their higher level wrappers.
- Importing C constants: Proof of Concept. A proof-of-concept rustc plugin that imports C macro constants from C include files at compile time.
- A Pythonist getting Rusty these days... (Part 2). Rust from a Python developer's perspective (part 2).
- Converting longitude and latitude coordinates into BNG coordinates.
- ArcadeRS - making a simple game in Rust.
- [opinion] Why Go and Rust are Competitors.
New Releases & Project Updates
- stdx. Curated collection of well-regarded Rust crates.
- ipc-channel. A multiprocess drop-in replacement for Rust channels.
- rocket. A toy game in Rust, using Piston.
- forkjoin. A work stealing fork-join parallelism library for Rust.
- capsize. Conversions between units of capacity.
- porthole. A tiny rust crate for resolving the next available network port.
What's cooking on nightly?
122 pull requests were merged in the last week.
- bluss updated substring search to use the Two Way algorithm.
- 1.2 beta will issue warnings about code that will break when RFC 1156 is implemented. This approved breaking change will fix a major wart and is thought to break no real code.
- Linux installation will try harder to set up the dynamic linker, fixing a bad first-run issue where Fedora systems can't run rustc out of the box.
- The
#[prelude_import]
attribute, which is employed by rustc to perform dark and mysterious acts, but is not supposed to be stable. This is not known to break real code. rustc
on Windows now looks in the registry to find the location of the MSVC linker.- Inspired by some poor I/O performance on the forums, bluss dug into the problem and pulled out some big improvements in zero-filling that greatly improve the performance of
Vec::resize
andRead::read_to_end
. - GuillaumeGomez added a host of new error explanations.
- dotdash got some huge improvements in the performance of
PartialEq
for slices. rustc
now uses LLVM to write archive files where possible. Eventually this will eliminate the compiler's dependency on thear
utility.- Add
String::into_boxed_slice
andBox<str>::into_string
. - Dave Huseby added initial support for FreeBSD on i686. Rust has long worked on 64-bit FreeBSD.
- Simon updated the gedit syntax highlighter.
New Contributors
- Alex HotShot Newman
- Christian Weinz
- Esption
- Georg Brandl
- Jesús Espino
- jethrogb
Approved RFCs
- RFC 1058: Replace
slice.tail()
,slice.init()
with new methodsslice.split_first()
,slice.split_last()
. - RFC 1102: Rename
connect
tojoin
.
Final Comment Period
Every week the teams announce a 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now. This week's FCPs are:
- Add a method
lines_any
toBufRead
- RFC for creation of
IntoRaw{Fd, Socket, Handle}
trait to complementAsRaw*
- RFC: Expand the std::net module
- RFC: Allow re-exporting associated items with
use
- Allow macros in types
New RFCs
- RFC for inclusive ranges with ...
- RFC: Prevent lint changes being a breaking change
- RFC: Add item recovery collection APIs
- ordered query API
- RFC for allowing eliding more type parameters
- pretty print
Debug
of tuples, tuple structs and enum variants in a single line - SIMD groundwork
- RFC: Add
cargo install
- Add support for naked functions
Upcoming Events
- 7/15. Tokyo Rust Monthly Meetup.
- 7/15. Rust Los Angeles Monthly Meetup.
- 7/20. Rust Paris.
- 7/22. Columbus Rust Society.
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.
Quote of the Week
I think if someone placed the Rust and Go community in a room and asked them to fight, we'd probably just all order pizza and geek out over languages. — Manish Goregaokar
Thanks to msiemens for the tip. Submit your quotes for next week!.