Rust has a very lively and fast-paced open source ecosystem, with a ton of contributors working on a ton of awesome projects.
And if you are asking – what can I build in Rust? The answer is almost everything.
This article will feature some of the open-source Rust libraries, frameworks, and repositories that could be useful to study or use for your own project.
For your convenience, I’ve split them into fields such as web development, game development, blockchain, and others. Let’s dig in!
Web development frameworks for Rust
Can you build a web app with Rust? Definitely!
Rust has multiple extremely fast web frameworks – Actix, Rocket, and Yew – and you can use the one that matches your needs and preferences.
Rocket
Rocket is the most accessible web framework in the Rust ecosystem for beginners. It is highly customizable and helps you kickstart a new application quickly. At the same time, it avoids a lot of unnecessary boilerplate. Rocket also has many features included, which means that you won’t need to go far from the framework to build everything you need.
In contrast to Actix Web, the framework runs on nightly Rust – the “experimental” version of the language.
Actix Web
Actix Web is usually thought to be more performant and stable than Rocket. Underneath, it works with the actor model used in Erlang and Akka.
In contrast to Rocket, it’s less “batteries included”, meaning that you will most likely need to use third-party libraries for extra functionality.
Yew
Yew is a Rust framework for creating web apps with WebAssembly. Among its main benefits, it lists a component-based framework like in React and Elm, outstanding performance because of the multi-thread support, and JavaScript interoperability.
As of now, it is not production-ready but should be an excellent choice for side projects and internal tooling, especially if you want to work with WASM.
Zola
If you need something quick and simple to serve a static website, Zola is a fantastic tool to create fast and scalable web pages without any other dependencies or JS bloat.
Warp
Warp is a web server framework written in Rust. In comparison to Rocket and Actix, it is rather slim for a web framework and will provide you only with basic functionality out of the box.
Game development
Rust is exceptional for game development for the same reason that C++ is: it is predictably performant. Here are some of the engines you can use to build your own Rust game.
Bevy
Two of the main Rust game engines are Bevy and Amethyst. Among them, Bevy is the newer and cooler one. It is a simple, data-driven engine and can essentially be called Amethyst 2.0 since it is heavily inspired by it.
For more info on Bevy, you can check out the Bevy book.
Amethyst
Amethyst is the more mature one of the two and, because of that, has more features that you might need for a large-scale project and better integrations with 3rd party libraries. But, Bevy is catching up fast. If you are searching for an engine for your new project, I’d recommend looking at them both and seeing which one you like better.
ggez
If you are searching for something simple to start off, ggez is a lightweight cross-platform game framework for making 2D games with minimal friction.
If you want to read more on game development in Rust, check out Are we game yet?
Operating systems
Rust is an excellent alternative to C in operating system development since it offers the same level of performance while taking care of memory safety. Actually, developers are investigating the possibility of adding Rust to the Linux kernel, and Microsoft is experimenting with it as well.
Here are some open-source operating systems that are written purely in Rust:
Redox
Redox is an operating system written in Rust that uses Rust’s innovations to build a modern microkernel.
intermezzOS
intermezzOS is a teaching operating system, specifically focused on introducing systems programming concepts to experienced developers from other programming areas.
Theseus
Theseus is a new OS written in Rust that presents a novel OS structure and claims to avoid the phenomenon of state spill, a thing that occurs when one entity’s state is permanently changed through interactions with another.
There’s quite a lot to read about – here’s a paper on the project.
GUI development
While Rust isn't well known for its capability for building captivating user interfaces, there's still a lot of good libraries to build GUIs with.
Druid
Druid is an experimental Rust-native UI toolkit with a focus on building simple, polished user experiences. It is data-oriented and inspired by modern frameworks such as Flutter, SwiftUI, and others.
To learn more about it, you can check out the Druid book.
Iced
Iced is a cross-platform GUI library with a focus on simplicity and type safety. It’s heavily inspired by Elm. While it is still experimental right now, it is an excellent option for creating GUIs right in Rust for your side project.
The Orbital Widget Toolkit
The Orbital Widget Toolkit is a cross-platform toolkit for building scalable user interfaces with Rust. It’s focused on speed, ease of use, and cross-platform compatibility.
Tauri
Tauri is a framework for building desktop applications for Windows, Linux, and macOS. With it, you can use any front-end framework that compiles to HTML/CSS/JS for building UIs, and Rust as the backend.
If you want to learn more about GUI development possibilities in Rust, here's a big post that covers most of the libraries.
Blockchain
OpenEthereum
The main goal of OpenEthereum is to be the fastest, lightest, and most secure Ethereum client. It is developed with Rust and claims to provide core infrastructure that is essential for speedy and reliable services.
Lighthouse
Lighthouse is an open-source Ethereum 2.0 client, written in Rust and maintained by Sigma Prime.
Parity Technologies: Polkadot and Substrate
Parity Technologies works on building blockchain infrastructure for the decentralized web.
Among its projects are Substrate, a modular framework for blockchain development, and Polkadot, a network of blockchains. Both of these projects heavily use Rust in their implementations.
Other projects
Here are some of the projects that don’t fit into any given category. Hope you can find something awesome in this collection of “things”. :)
Servo
Servo is a web engine prototype written in Rust. It’s the result of Mozilla’s work on creating a new, open-source browser engine. In 2020, Servo moved on from Mozilla to being hosted by the Linux Foundation.
Servo is supposed to be safer than the browsers written in C++ due to Rust’s memory safety guarantees that reduce the number of vulnerabilities.
swc
swc is a superfast JavaScript/TypeScript compiler. In comparison to Babel, it has been benchmarked to increase the compilation speed at least 18 times.
Ruffle
Want to run all the cool Flash games that Adobe has recently disabled support for? You can use Ruffle, a Flash player emulator written in Rust.
You can try it out on ruffle.rs.
Lunatic
Lunatic is an experimental platform that uses WASM instances as actors to structure execution. It is heavily inspired by Erlang.
It is supposed to unite the good sides of WASM and Erlang, enabling you to build actor-based systems that are both fault-tolerant and blazingly fast.
Starship
Starship is a fast, customizable, and intelligent prompt for those that want to make their shell cooler.
MeiliSearch
MeiliSearch is a powerful, fast, easy to use, and customizable search engine that’s also typo-tolerant. Now that’s a lot of adjectives! You can set it up for your own project instead of a custom and probably worse-performing solution.
Have anything to add?
As you can see, the ecosystem is vast, and there is a lot to explore. I certainly wasn’t able to cover everything. If you know of a project that deserves to be here, don’t be afraid to let us know!
If you want to learn more about Rust, I suggest going to our blog’s Rust section. Have fun!
Top comments (1)
Awesome post!