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: Vikrant and llogiq.
Updates from Rust Community
News & Blog Posts
- Everything you need to know about cross compiling Rust programs.
- Deep learning in Rust: Baby steps.
- BigData & Rust, part 3. A comparison of data serialisation formats.
- Rust's memory management for C/C++ programmers.
- How Stateful cheats at analysis. Stateful is a Rust experimental syntax extension for generators and more.
- This week in Servo 49.
- This Week in Amethyst 3. Amethyst is a data-oriented game engine written in Rust.
Notable New Crates & Project Updates
- PSA: If you used these particular cargo nightlies, you need to reupload published crates.
- Diesel has added support for SQLite3.
- RustType. A pure Rust alternative to libraries like FreeType.
- crates.fyi - Documentation generator for crates released in crates.io.
- Pippin. A distributed-merge capable database for many small objects.
- Pijul. Distributed version control system written in Rust.
- Zipper. ZIP file parser written in Rust.
Updates from Rust Core
121 pull requests were merged in the last week.
Notable changes
- Don't make atomic loads and stores volatile.
- Emscripten support take 2 (with bonus i686-unknown-linux-musl).
- Remove MutexGuard::map, as it is not safe in combination with Condvar.
- Avoid quadratic growth of functions due to cleanups.
- Add
Cow::from
forVec
and slices. - Abort on stack overflow instead of re-raising SIGSEGV.
- Fix the armv7 linux target.
- Allow
#[repr(i32)]
for univariant enum. - Add Illumos support.
New Contributors
- Alexander Lopatin
- Brandon W Maister
- Nikita Baksalyar
- Paul Smith
- Prayag Verma
- qpid
- Reeze Xia
- Ryan Thomas
- Sandeep Datta
- Sean Leffler
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 243: Trait-based exception handling.
- RFC 1445: Restrict constants in patterns.
- RFC 1359: Add
CommandExt::{exec, before_exec}
. - Amendment to RFC 1270: Describe actual implementation.
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:
- Deprecate type aliases in
std::os::*::raw
. - Add
retain_mut
toVec
andVecDeque
. - Rust Language Server (IDE support).
- Add a
SharedSender
tostd::sync::mpsc
that implementsSync
. - Propose a design for specialization, which permits multiple
impl
blocks to apply to the same type/trait. - Let specified generic type parameter lists be abbreviated.
- Add a
IndexAssign
trait that allows overloading "indexed assignment" expressions likea[b] = c
.
New RFCs
- Add a new
kind=better_static
that is used to link static libraries by passing them to the linker. - Permit the
..
pattern fragment in more contexts.
Upcoming Events
- 2/10. OpenTechSchool Berlin: Rust Hack and Learn.
- 2/10. Rust Boulder/Denver Monthly Meeting.
- 2/11. Columbus Rust Society.
- 2/12. Embedded Rust Workshop Frankfurt.
- 2/15. Rust Paris.
- 2/15. Rust Sydney Meetup.
- 2/16. San Diego Rust: Eat– Drink– Rust! Downtown Rust Meetup.
- 2/17. Rust Los Angeles Monthly Meetup.
- 2/17. Rust Berlin: Leaf and Collenchyma.
- 2/18. Rust Hack and Learn Hamburg @ 4=1.
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
- Research Engineer - Servo at Mozilla.
- Senior Research Engineer - Rust at Mozilla.
- PhD and postdoc positions at MPI-SWS.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Crate of the Week
The week's Crate of the Week is roaring, the Rust version of Prof. D. Lemire's compressed bitmap data structure. I can personally attest that both the Rust and Java versions compare very favorably in both speed and size to other bit sets and are easy to use.
Thanks to polyfractal for the suggestion.