Some Extensive Projects Working with Rust

Reading Time: 6 minutes
This image has an empty alt attribute; its file name is untitled-design.png

Hello, folks! your wait is over, we have come up with a new blog. In this blog, we will discuss some tremendous projects using Rust as programming language. Hope you will enjoy the blog.

Amazon Firecracker:

Amazon’s Firecracker is the virtualization technology that powers AWS Lambda and Fargate. It is written completely in Rust. One of the technology’s authors, Andreea Florescu, offers insight into Firecracker and its related technologies in Building the virtualization stack of the future with rust-vmm.

habr-rust-003--2018-11.md · GitHub

Firecracker started life as a fork of Google’s CrosVM but quickly diverged due to the differing needs of the two projects. Despite this, there are many common pieces that are best shared across the project and in any other virtual machine manager (VMM) written in Rust. With that in mind, the rust-vmm project started as a way for Amazon and Google, as well as Intel and Red Hat, to share common Rust “crates” (i.e., packages) with each other and the rest of the open-source community. These include interfaces to KVM (Linux virtualization APIs), Virtio device support, and a kernel loader.

It’s truly amazing to see some of the titans of the software industry working together around a common technology stack written in Rust. Given this and other partnerships around technology stacks written in Rust, I wouldn’t be surprised to see more of this incoming year.

Windows Runtime:

MALWARE ALERT: Huge Win10 Vulnerability Discovered | Lifehacker ...

Windows Runtime is a platform-agnostic application architecture first introduced in Windows 8 and Windows Server 2012 in 2016. 

As we all know Microsoft has long depended on C++ as the backbone for so much of what they do, but it has some challenges particularly when it comes to security. Modern C++ certainly makes it easier to write safe and secure C++ if you follow certain careful conventions, but that is often hard to enforce on larger projects. Rust is an intriguing language. It closely resembles C++ in many ways, hitting all the right notes when it comes to the compilation, runtime model, type system, and deterministic finalization. While it has its own unique learning curve, it also has the potential to solve some of the most vexing issues that plague C++ projects and is designed from the ground up with memory safety and safe concurrency as core principles.

One Signal:

1 Push Service | Send Mobile & Web Push Notifications - OneSignal

OpenSignal has written OnePush in Rust that has been hugely successful for us. We’ve been able to easily meet our performance and scaling goals with the application. OnePush is capable of delivering over 6 billion notifications per second and efficiently maximizes the use of system resources. Despite being highly multithreaded, race conditions have not been an issue for us. Even better, OnePush needs very little attention. They were able to leave it running without any issues through the holiday break.

Rust enables belligerent refactoring – making dramatic changes and then working with the compiler to bring the project back to a working state.

NPM:

Peer dependencies — NPM - Thabo Ambrose - Medium

NPM engineers identified the best language for the task. C and C++ were quickly excluded due to the lack of memory safety, while Java was ruled out due to its dependence on a virtual machine. The two languages that were left were Go and Rust. To better evaluate the final solution, the npm team decided to rewrite their authentication service in both of those languages, as well as in Node.js to have a reference for comparison.

Admittedly, npm authentication service was not extremely complex and the rewrite in Node.js took just one hour. On the other hand, Go required two days, while it took a whole week to rewrite it in Rust, mostly due to a steeper learning curve for Rust and to the intrinsic complexities of the language

In the end, the npm team decided to deploy the Rust version of the authentication service mostly thanks to the strong support they got from the Rust community and to the superiority of Rust package manager Cargo, in comparison with what Go offered at that time.

The good news for the npm team is that the Rust service has been running for more than one year in production without a single alert. This is in stark contrast to the usual experience of deploying a Node.js service at npm which includes extensive monitoring to keep errors and resource usage under control.

Azure IOT:

Introduction to Azure IoT Edge and Edge Modules - Hackster.io

At this point, Azure IoT is completely on-board with the Rust programming language. Usage of Rust has only expanded even more since They shipped Azure IoT Edge.
Multiple cloud service projects that are currently being actively worked upon are being written in Rust. The trifecta of memory safety, data race safety, and performance that Rust offers has been a great fit for Azure IoT.

Discord:

Discord — Chat for Communities and Friends

At Discord, they’ve seen success with Rust on the client-side and server-side. For example, they use it on the client-side for his video encoding pipeline for Go Live and on the server-side for Elixir NIFs. Most recently, they drastically improved the performance of a service by switching its implementation from Go to Rust.

Oxidation:

Mozilla to release a new Firefox version every four weeks starting ...

Oxidation is a project of Mozilla to integrate Rust code in and around Firefox.
The goal of this project is to make it easier and more productive to use Rust in Firefox, and correspondingly to increase the amount of Rust code in Firefox.

Firefox Quantum:

The race for internet browser supremacy is accelerating once again, with Mozilla’s latest open-source Firefox browser. The new Firefox Quantum browser, which is currently available as a beta, is two times faster than the Firefox 52 release which debuted in March 2017.

Start Your Engines – Firefox Quantum Lands in Beta, Developer ...

Firefox Quantum is actually the Firefox 57 release, but Mozilla developers have decided that the speed gains in the upcoming browser milestone are so noteworthy that it should have a unique name as well. Mozilla has been incrementally adding features to Firefox over the past year to help speed up the browser, in an effort to provide better performance than Google’s rival Chrome browser. As a result, Mozilla developers demonstrate that Firefox Quantum is measurably faster than Google Chrome.

CloudFlare:

Cloudflare is one of the biggest networks operating on the Internet. People use Cloudflare services for the purposes of increasing the security and performance of their web sites and services.

Cloudflare | Sitecore Technology Alliance

Cloudflare’s Serverless Platform, Cloud flare Workers, now allows the compiler to compile the webAssembly code, upload to 150+ data centers, and invoke those functions just as easily as if they were JavaScript functions.

Fuchsia:

Report: Vivo will join Google Fuchsia ecosystem - cnTechPost

Fuchsia is an open-source capability-based operating system currently being developed by Google. It first became known to the public when the project appeared on a self-hosted form of git in August 2016 without any official announcement.

Fuchsia is designed to support multiple programming languages. It already has support for C/C++, Dart, Go, Rust and Python. In addition, there is FIDL (Fuchsia Interface Definition Language), “a language for defining protocols that are typically used over channels. FIDL is programming language agnostic and has bindings for many popular languages, including C, C++, Dart, Go, and Rust. This approach lets system components written in a variety of languages interact seamlessly,” state the docs. Channels are messaging transports provided by Zircon.

Note: I hope our blogs help you to enhance your learning. I’ll post more blogs on Rust. Stay Tuned.

If you want to read more content like this?  Subscribe Rust Times Newsletter and receive insights and latest updates, bi-weekly, straight into your inbox. Subscribe Rust Times Newsletter: https://bit.ly/2Vdlld7 .

Happy learning!!!

References:

This image has an empty alt attribute; its file name is footer-2.jpg

Written by 

Pankaj Chaudhary is a Software Consultant at Knoldus LLP. Who has good knowledge of Rust, Python, Java, and C. Now he is working as Rust developer and also work on machine learning and data analysis because he loves to play with data and extract some useful information from it. His hobbies are bike riding and explore new places.

2 thoughts on “Some Extensive Projects Working with Rust9 min read

Comments are closed.