A pet project by Mozilla employee Graydon Hoare that grew to be one of Mozilla’s most important endeavours, The rust language was first announced in 2010. It was voted “most loved programming language” in the Stack Overflow developer survey in both 2016 and 2017.
There’s a lot of interesting work being done with Rust and here are five of the most interesting projects.
Servo
Servo is Mozilla’s headline project. A brand new browser engine written in Rust. Servo is exciting because it promise to bring a new better take on parallelism to the browser engine paradigm. Rust’s excellent support and safety for parallel execution enables Servo to utilize the many cores of modern computers better than ever before. The best thing is we don’t have to wait for Servo to be completed before these benefits are realized. With the Quantum project Mozilla aims to bring parts of Servo to Firefox before Servo is completed. The first step in this plan is Stylo, the CSS subsystem from Servo, landing in Firefox. It’s enabled by default in Firefox 57 which is the current beta version. Those interested in this work should read Inside a super fast CSS engine: Quantum CSS (aka Stylo) by Lin Clark. I believe that Firefox is about to enjoy a renaissance as the best browser thanks to the improvements from the Servo project.
Redox
Redox is an ambitious project to build full Unix-like operating system with Rust. Using the Rust features it should achieve both high performance and memory safety which is absolutely crucial in an operating system. Building an operating system is an enormous challenge, but Redox has made impressive progress in the two years it’s been in development.
Cargo
Cargo is the Rust package manager. Like the language itself Cargo takes inspiration from the history of package managers that came before it. Cargo is a staple in the Rust ecosystem and is one of the things that makes working with Rust a joy. Like Rust it’s both safe and fast. It features support for semver ranges in a manifest file(Cargo.toml
). Like other excellent package managers, such as Bundler, it locks down the full dependency graph in a file(Cargo.lock
) ensuring deterministic builds.
Alacritty
Alacritty is a cross-platform, GPU-accelerated terminal emulator. Utilizing the memory safety and excellent parallelism of Rust it’s already the fastest terminal emulator available. This blog post was written in Neovim running in tmux with Alacritty as the terminal emulator. In my experience so far Alacritty is a lot faster than iTerm which used to be my default choice for terminal emulation. Refreshingly Alacritty moves all configuration to a YAML file making it a lot simpler to sync configuration across many computers.
tray_rust
Will Usher’s tray_rust is a fast, fully featured ray tracer in Rust. Will also created a Rust port of the great C++ .obj loader tinyobjloader called tobj. I’ve personally used and contributed to tobj as part of my much less impressive rust ray tracer.