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.
Updates from Rust Community
News & Blog Posts
- Binding threads and processes to CPUs in Rust.
- The many kinds of code reuse in Rust.
- Code of heat conductivity. Llogiq on Rust's Code of Conduct.
- Rustic Bits. And on the small things that make code rustic.
- Why Rust's ownership/borrowing is hard.
- [video] Rust: Unlocking Systems Programming by Aaron Turon.
- This week in Servo 50.
- This week in Amethyst 4. Amethyst is a data-oriented game engine written in Rust.
Notable New Crates & Project Updates
- A MOS6502 assembler implemented as a Rust macro.
- Ketos. Lisp dialect scripting and extension language for Rust programs.
- Parity. Next Generation Ethereum Client, written in Rust.
- TensorFlow Rust. Rust language bindings for TensorFlow from Google.
- rpc-perf. A tool for benchmarking RPC services from Twitter.
- rust-lzma. A Rust crate that provides a simple interface for LZMA compression and decompression.
Updates from Rust Core
125 pull requests were merged in the last week.
- [breaking batch] don't glob export
- [breaking batch] Rename and refactor ast::Pat_ variants.
- [breaking batch] Remove some unnecessary indirection from AST structures.
- Allow registering MIR-passes through compiler plugins.
- Add a new i586 Linux target.
- std: Deprecate all
- Workaround LLVM optimizer bug by not marking &mut pointers as noalias.
- Don't let
remove_dir_allrecursively remove a symlink.
- Split dummy-idx node to fix expand_givens DFS.
- Do not expect blocks to have type str.
- Add _post methods for blocks and crates.
- fix: read_link cannot open some files reported as symbolic links on windows.
- Adam Perry
- Carlos E. Garcia
- Daniel Robertson
- Felix Gruber
- Johan Lorenzo
- Kenneth Koski
- Masood Malekghassemi
- Richard Bradfield
- Scott Whittaker
- Thomas Winwood
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
- Stabilize volatile read and write.
- Move some net2 functionality into libstd.
- Extend atomic compare_and_swap.
memcpyfrom one slice to another of the same type and length.
maybe!macro equivalent to
- Add additional
try!(expr => return)that will return without value.
- Add a
let...elseexpression, similar to Swift's
- Add macros to get the values of configuration flags.
Fromand new trait
IntegerCastfor primitive integer types.
- Propose a design for specialization, which permits multiple
implblocks to apply to the same type/trait.
- Add octet-oriented interface to
- Extend the pattern syntax for alternatives in
#[clear_stack_on_return]to securely clear sensitive data after use.
- Amend RFC 550 with misc. follow set corrections.
- 2/16. San Diego Rust: Eat– Drink– Rust! Downtown Rust Meetup.
- 2/17. Copenhagen Rust Group meetup.
- 2/17. Rust Los Angeles Monthly Meetup.
- 2/17. Rust Berlin: Leaf and Collenchyma.
- 2/18. Rust Hack and Learn Hamburg @ 4=1.
- 2/24. OpenTechSchool Berlin: Rust Hack and Learn.
- 2/25. Tokyo Rust Meetup #3.
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!
Hi students! Looking for an awesome summer project in Rust? Look no further! Chris Holcombe from Canonical is an experienced GSoC mentor and has a project to implement CephX protocol decoding. Check it out here.
Crate of the Week
This week's Crate of the Week is rayon,
which gives us
par_iter_mut() functions that use an internal thread pool to easily parallelize data-parallel operations.
rayon::join(|| .., || ..) for Fork-Join-style tasks. Apart from the ease of use, it also performs very well, comparable to hand-optimized code.
Thanks to LilianMoraru for the suggestion.