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? Send me an email! Want to get involved? We love contributions.
What's cooking on master?
Now you can follow breaking changes as they happen!
std::pathhas been rewritten to improve ergonomics and better support platform-specific features. The old path module still exists as
std::old_pathand remains exported by the prelude (for now). RFC.
std::envhas been added to the standard library as an overhaul of the existing
std::osmodule, which is now deprecated. Part of the almighty RFC 517.
- And also we've got a new
std::iomodule, again part of the mother of RFCs.
- The explicit closure kind syntax (
|:|) is obsolete and closure kind is inferred from context.
- In order to make drop semantics optimizable it is no longer possible to move into uninitialized arrays or out of fixed sized arrays. RFC.
#![no_std]attribute that allows for operation without the standard library has been placed behind the
- The scope of iterator expressions has been narrowed in a way that breaks minor corner-cases.
- The deprecated
MaybeOwnedVectortype has been removed.
Box::frow_rawfunctions convert between
*mut T, a common pattern for creating raw pointers.
- Initial support for OpenBSD and BitRig, an OpenBSD fork, appeared this week, from Sébastien Marie and Dave Huseby respectively.
- Caspar Krieger
- Dan Yang
- Filip Szczepański
- Garrett Heel
- Junseok Lee
- Kostas Karachalios
- Leo Testard
- Mikhail Zabaluev
- Nick Sarten
- Ulrik Sverdrup
- RFC 213: Finalize defaulted type parameters.
- RFC 320: Non-zeroing dynamic drop.
- RFC 469: Feature-gate box patterns.
- RFC 531: Ammend RFC process with a defined scope.
- RFC 533: No array element moves. Disallows moving in and out of arrays to fix non-zeroing dynamic drop.
- RFC 556: Convention for constructing lifetime-bound values from raw pointers.
- RFC 560: Integer overflow. Makes integers defined to not overflow by default, with considerations for the impracticalities of actually checking for overflow.
- RFC 720: Syntax for
- The I/O RFC was updated for changes to
- All RFCs now must define a 'feature_name' for tracking purposes.
- Type ascription. Hint to the compiler the type of arbitrary expressions.
- Ammend RFC 517 to add material on
in. A new strategy for boxing things.
std::fmt::formatin favor of
- Tweaks to the object safety rules.
- Weekly-meetings/2015-02-03: RFC shepherd attention spans; raw pointers and lifetimes; non-zeroing drop
- Unofficial Rust and Cargo nightlies for ARM. japaric to the rescue again.
- DroidLogician wants to help people with Rust on Windows.
- Go and Rust: The road ahead for two young programming languages
- The Story of Rust. Steve Klabnik's slides from FOSDEM. /r/rust.
- Raft experiences (part 1). Hoverbear is working on an implementation of the Raft consensus algorithm.
- How's Rust working out as the backend for crates.io?. Very well, thank you. Rust is solid as a rock.
- C++ has
vector(n, value), c has
calloc, rust has.... Initializing a vector requires iterator chaining today,
Vec::from_elemno longer exists.
- dimensioned. Compile-time checking of arbitrary units.
- byteorder. Big- and little-endian interop from BurntSushi.
- rustless. A high-quality 'REST-like' microframework built on Iron and Hyper.
- colonize!. A roguelike using the tcod toolkit and Piston. Indiv0 promises to document the development process.
- This Week in Servo 22. For its third birthday Servo added cookie support.
- If you are the tweeting type, follow ServoNightly for the latest on that project.
- Racer project update 4. Rust's best code-completion tool supports generics and destructuring.
- Conrod, the GUI for Piston, is now backend-agnostic.
- Tomaka is looking for somebody to port CPAL, the cross-platform audio library to OS X.
- New playform screenshoht. The minecraft-like has recently gotten a number of new features.