Joe PreviteJoe PreviteSee all posts

Understanding the Rust Ecosystem

Last updated:

Graph representing all the facets made up in a programming language ecosystem.

Rust, a systems-programming language, which prides itself on being Stack Overflow’s “most loved language for five years in row” and GitHub’s second fastest growing (235% 2018-2019) has gained popularity both at companies like Amazon, FB, Discord and externally within the programming community.

For part of my job, I have been focused on developing my own understanding of the space. I work within the DevTools pillar and focus primarily on programming languages. My main priority for H1 of 2020 has been Rust. The goal of this article is:

  • To paint a high-level overview of the ecosystem

The article covers various aspects of the ecosystem including community, companies using the language, selling points, etc.

Overview

One of the hardest parts of understanding a programming language is setting the boundaries for what you encapsulate as part of and not part of the ecosystem. I gathered input coworkers and mentors in order to set the criteria for this project. For our purposes, I choose to limit it to the following areas, which you’ll see below. For each section, you can expect:

  • A brief description of how I defined the section
  • Key highlights from the ecosystem for that area of the ecosystem

Academic Research

Things that fall under this category might be research papers, academic presentations, and anything related. It was difficult to find much in this area, but here are a few highlights:

As you can tell from skimming the headings, researchers are looking at Rust’s use cases, security, memory management, type-safety and concurrency. It’s unfortunate there isn’t an easy way to stay on top of academic research within Rust.

Demographics

When you look at the programming language, how do you know who is using it? What industries do they work in? Fortunately, the Rust Survey 2019 Results provides insight related to demographics. Based on the results, here are the key highlights:

  • Respondents’ top five languages: English, Chinese, German, French and Japanese
  • Top five industries using Rust: Backend Web Applications, Distributed Systems, Embedded Devices, IT and Network Programming
  • Top three titles for Rust users: Programmer/Software Engineer, Systems Architect, Web Developer/Front End Developer

It’s unfortunate that we do not have more information related to demographics such as gender, ethnicity, race, etc. There was an attempt to gather some of this information in the 2016 survey. Know that this section contains a small glimpse into the people of the Rust and is far from complete or representative of the ecosystem.

Community

Community itself is a huge category. I tried my best to break it into subcategories for things that might fit here.

In general, think of this area as the various places where members of the community congregate (online and in-person), groups who write code, and foundations. These are a combination of chat platforms, but also places where updates are shared with the community. Here are some worth noting:

*These stats were taken on 5/19/2020

As you can see, the community category extends itself across many platforms and mediums online. It’s easy to overwhelm oneself with all the places you can go to get involved. The beautiful part is that there is no shortage of finding ways to meet others within the community.

*For the data in the “Meetups > Stats” category, you’ll notice that it includes some meetups that are not specifically for Rust so take that number with a grain of salt.

Companies

It would be impossible to list all the companies that use Rust. This is a sub-selection of notable companies (more well-known) that are using or investing in Rust, ideally along with articles where they share how they’re using it or helping the ecosystem:

Language

Think core library, compiler, type system. Basically all the code that makes up the language and some of the tools that help with writing code in Rust.

Language Frameworks

What would a programming language be without frameworks? Thankfully, the community resource rust-web-framework-comparison made this research easy. Here is a long list:

Again, this is a bit overwhelming for a new person learning Rust. It’s difficult to know what to choose. However, it’s also a benefit having the ability to try out various solutions and see what works best.

Learning

Similar to the Community category, learning can be quite difficult to narrow down. I have tried my best to highlight the main areas and a few examples for each category. Know that this list is non-exhaustive and more a brief survey into this area of the ecosystem.

Packages

One of the most important aspects of a programming language ecosystem is a way to share code with others. In the Rust ecosystem, the most common way is through packages, more commonly referred to as “crates”. Below are links to two places where you can share code (your own private registry or the public one):

  • Cloudsmith - create your own private cargo registry
  • crates.io - “The Rust community’s crate registry”
  • libs.rs - “Fast, lightweight, opinionated, unofficial alternative to crates.io”

Platforms

The objective for this section was to figure out where Rust code can run. What platforms or systems are people targeting or building for? We saw a few of these mentioned in the Frameworks section. Here are the most common ones I could find (and some examples):

Selling Points

Everyone will have their favorite reasons for using one language over another. I tried to select articles related to the selling points, but also highlight features of the language brought up by people who advocate for it.

*Note: this section also piggybacks off the Use Cases section (coming up).

Beyond this, I would encourage you to read the results from the Rust 2019 survey which asked “Why not use Rust”. Not all points relate to selling points, but it may provide insight into what would sell people on using Rust if these things were fixed.

Tools

The tools used for writing and using the programming language is an aspect we sometimes forget. This affects the developer experience and can drive or hinder the ecosystem. Here are some highlights:

Use Cases

Deriving some of the tops results from the Rust Survey 2019, here are the main industries/applications that responded in the survey and are using Rust:

Summary

Reflecting on what we have covered thus far, we can see that the Rust ecosystem is well-developed and growing. This is not a conclusive/comprehensive list of the ecosystem or the companies using it. From my knowledge, Rust is used at big companies such as Amazon, Apple, Microsoft and Google. They are all investing in the language. We’ve covered the ecosystem from a bird’s-eye view as we see it today. Here are the main things to walk away with:

  • Overview
    • The community is ubiquitous both online and in-person
    • There is no shortage of books or references to read from the official Rust groups
    • Rust can be used for writing web, mobile, and CLI apps, servers embedded devices, and OS’s
    • Rust is fast, well-documented, type-safe, manages memory efficiently, but has a steep learning curve

What’s next?

We plan to use this information when making decisions and building strategies for us to get involved with the Rust ecosystem. If you’d like to collaborate with us, please reach out to me over DMs on Twitter! We would love to work with you. Thank you for reading!

Thank you

To close out, I’d like to give thanks to the following people for their contributions and feedback. I appreciate all of you!

  • David Tolnay
  • Pedro Rittner
  • Jk Jensen
  • Joe Savona
  • Nell Shamrell-Harrington
  • Lauren Tan
  • Kathy Kam
  • Cami Williams
  • Joel Marcey