24 Awesome Open-Source Rust Projects
Tags: rust, opensource, webdev, gamedev
Published: 2021-01-26 20:18:40

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 

![Rust web development](https://serokell.io/files/t4/t4mp0qkr.1_(45)_(1).jpg)

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](https://github.com/SergioBenitez/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](https://github.com/actix/actix-web) is usually thought to be more performant and stable than Rocket. Underneath, it works with the actor model used in [Erlang](https://serokell.io/blog/introduction-to-erlang#process-oriented) and [Akka](https://doc.akka.io/docs/akka/current/typed/actors.html). 

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]( https://github.com/yewstack/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](https://github.com/getzola/zola) is a fantastic tool to create fast and scalable web pages without any other dependencies or JS bloat. 


### Warp 

[Warp](https://github.com/seanmonstar/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 game development](https://serokell.io/files/cu/cubf89sc.2_(36)_(1).jpg)

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](https://github.com/bevyengine/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. 

{% youtube Qjc0V58lB7A %}

For more info on Bevy, you can check out the [Bevy book](https://bevyengine.org/learn/book/introduction/).


### Amethyst

[Amethyst](https://github.com/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](https://github.com/ggez/ggez) is a lightweight cross-platform game framework for making 2D games with minimal friction. 


<hr>

If you want to read more on game development in Rust, check out [Are we game yet?](https://arewegameyet.rs/)


## Operating systems 

![Rust operating systems](https://serokell.io/files/zd/zdu35vif.3_(34)_(1).jpg)

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](https://hackaday.com/2020/07/15/will-2020-be-the-year-of-rust-in-the-linux-kernel/) the possibility of adding Rust to the Linux kernel, and Microsoft [is experimenting with it](https://serokell.io/blog/rust-companies#microsoft) as well. 

Here are some open-source operating systems that are written purely in Rust:


### Redox

[Redox](https://www.redox-os.org/) is an operating system written in Rust that uses Rust’s innovations to build a modern microkernel.


### intermezzOS

[intermezzOS](https://intermezzos.github.io/) is a teaching operating system, specifically focused on introducing systems programming concepts to experienced developers from other programming areas.


### Theseus

[Theseus](https://github.com/theseus-os/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](http://kevinaboos.web.rice.edu/docs/theseus_boos_osdi2020.pdf) on the project. 


## GUI development 

![Rust GUI development](https://serokell.io/files/2l/2lrxdv4z.4_(27)_(1).jpg)

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](https://github.com/linebender/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](https://linebender.org/druid/).


### Iced

[Iced](https://github.com/hecrj/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](https://github.com/redox-os/orbtk) 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](https://github.com/tauri-apps/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. 

<hr>

If you want to learn more about GUI development possibilities in Rust, [here's a big post](https://dev.to/davidedelpapa/rust-gui-introduction-a-k-a-the-state-of-rust-gui-libraries-as-of-january-2021-40gl) that covers most of the libraries. 


## Blockchain 
![Rust blockchain](https://serokell.io/files/tg/tguo1lj1.5_(23)_(1).jpg)

### OpenEthereum

The main goal of [OpenEthereum](https://github.com/openethereum/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](https://github.com/sigp/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](https://github.com/paritytech/substrate), a modular framework for blockchain development, and [Polkadot](https://github.com/paritytech/polkadot), a network of blockchains. Both of these projects heavily use Rust in their implementations.


## Other projects
![Other Rust projects](https://serokell.io/files/hm/hmv5pjmr.6_(11)_(1).jpg)

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](https://github.com/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](https://github.com/swc-project/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](https://github.com/ruffle-rs/ruffle), a Flash player emulator written in Rust. 

You can try it out on [ruffle.rs](https://ruffle.rs/demo/). 


### Lunatic 

[Lunatic](https://github.com/lunatic-lang/lunatic) is an experimental platform that uses WASM instances as actors to structure execution. It is heavily inspired by [Erlang](https://serokell.io/blog/introduction-to-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](https://github.com/starship/starship) is a fast, customizable, and intelligent prompt for those that want to make their shell cooler. 


### MeiliSearch

[MeiliSearch](https://github.com/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](https://serokell.io/blog/rust). Have fun!