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, brson, and llogiq.
Updates from Rust Community
News & Blog Posts
- The little book of Rust macros.
- Rust and IDEs. The plan for better integration of Rust with IDEs.
- This week in Redox 2. Redox is an upcoming OS written in Rust.
- This Week In Servo 37.
- Rust to the rescue (of Ruby). Call Rust code from Ruby.
- Hacking Servo for noobs.
- Building an SQL database with 10 Rust beginners.
- Using a Rust DLL from C#.
- Creating a C API for a Rust library.
- A simple link checker built with Rust.
Notable New Crates & Projects
- Rust-Bio. A bio-informatics library for Rust.
- Rust64. A C64 emulator written in Rust.
- Simplemad. A Rust interface for the MPEG audio decoding library libmad.
- pine. Process line output.
- JSONlite. A simple, self-contained, serverless, zero-configuration, json document store.
- medio. Rust bindings to Medium.com api.
Updates from Rust Core
100 pull requests were merged in the last week.
See the subteam report for 2015-10-16 for details.
Notable changes
- rust_trans: struct argument over ffi were passed incorrectly in some situations. Change cabi_x86_64 to better model the sysv abi.
- Move desugarings to lowering step.
- Implement conversion traits for primitive integer types.
- Remove the
push_unsafe!
andpop_unsafe!
macros. - Add
#[derive(Clone)]
tostd::fs::Metadata
. - Add
into_inner
andget_mut
toMutex
andRwLock
. - Reject
+
and-
when parsing floats. - Add
Shared
pointer and have{Arc, Rc}
use it.
New Contributors
- billpmurphy
- David Ripton
- Fabiano Beselga
- kickinbahk
- Marcello Seri
- nxnfufunezn
- Robert Gardner
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation 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:
- Allow overlapping implementations for marker traits.
- Promote the
libc
crate from the nursery. - Enable the compiler to cache incremental workproducts.
- Add some additional utility methods to
OsString
andOsStr
.
New RFCs
- Changes to the compiler to support IDEs.
- Prevent unstable items from causing name resolution conflicts with downstream code.
- Amend
recover
with aPanicSafe
bound. - Add "panic-safe" or "total" alternatives to the existing panicking slicing syntax.
- Refine the unguarded-escape-hatch from RFC 1238.
- Allow a custom panic handler.
Upcoming Events
- 10/20. Rust Hack and Learn Hamburg.
- 10/28. Columbus Rust Society.
- 10/28. Rust Amsterdam.
- 10/28. RustBerlin Hack and Learn.
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
No jobs listed for this week. Tweet us at @ThisWeekInRust to get your job offers listed here!
Crate of the Week
This week's Crate of the Week is Glium a safe Rust wrapper for OpenGL. Thanks to DroidLogician for the suggestion. Submit your suggestions for next week!
OpenGL is a time-honored standard, which also means its API has seen enough growth to make it look like you might find Sleeping Beauty if you look deep enough. Also it was created when multi-core wasn't exactly on the radar, so many things are not thread safe. Caveat error! Glium pre-verifies whatever it can to make errors either impossible at compile time or panic before it can crash (so you at least get a helpful message instead of random garbage). It caches the context, manages your buffers using Rust's standard RAII idiom and by this brings some much-needed sanity to OpenGL programming.
Quote of the Week
S-s-s-s-stack alloc Queen, no C++ though Might drop that pointer, no nullable though Tell golang, "Yo, don't you got enough mem to slow?" Tell 'em Kangaroo Rust, I'll box your flow
Advanced pattern matching - possible Don't go against Rusty - impossible Runtime will leave your CPU on popsicle Man these h*es couldn't be any less logical