Open-source project
rust-unofficial/awesome-rust avatar
rust-unofficial/awesome-rust

awesome-rust is a categorized Rust directory with no ranking, so the reading strategy matters more than the list

A curated list of Rust code and resources.

60,519 stars3,808 forksRustCC0-1.0

At a glance

What is it?
rust-unofficial/awesome-rust is a CC0-licensed README that sorts Rust applications, development tools and libraries into dozens of categories, backed by a small Rust crate and two CI workflows. It is good for finding candidates in a domain and poor at telling you which candidate to pick, and this guide covers how to read it with that in mind.
Who is it for?
awesome-rust is the right starting point when you know the domain you need, such as eBPF, geospatial, FFI or a Tauri desktop app, and want a set of Rust candidates to compare. It is the wrong tool for deciding which crate is best, because entries sit in alphabetical order with one-line descriptions and no ranking.
Can I use it commercially?
Yes. CC0-1.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • rust-unofficial/awesome-rust60,519 ★ · +1,635
Star history
Repository2026-08-182026-11-13
rust-unofficial/awesome-rust58.9k60.5k

1,635 Stars in the last 87 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Three top-level halves: Applications, Development tools and Libraries

The whole project is one README, organized by a generated table of contents between BEGIN mktoc and END mktoc markers. Under it sit three large groups plus two short ones. Applications holds finished programs, from Audio and Music and Blockchain through Text editors, Virtualization, Web Servers and Workflow Automation. Development tools covers the work of building Rust itself: Build system, Debugging, Deployment, Embedded, FFI, Formatters, IDEs, Profiling, Services, Static analysis, Testing, Transpiling and Tunnel. Libraries is the largest group, running from Artificial Intelligence and Astronomy down to Unsafe, Video, Virtualization and Web programming. After those come Registries and Resources, then License.

That structure decides how you use it. If you want a program to run, start in Applications. If you want a crate to depend on, go to Libraries. If you want tooling around your own Rust code, such as a profiler or a static analyzer, Development tools is the place. Picking the wrong half is the most common way to conclude the list has nothing for you.

The same category name appears in more than one half

Many category names repeat across the halves, and the table of contents gives them suffixed anchors to tell them apart. Audio and Music, Database, Finance, Graphics, Image processing, Social networks, Task scheduling, Text processing, Video and Virtualization each exist once under Applications and again under Libraries. Embedded appears under Applications and under Development tools.

The consequence is easy to miss. Someone searching the page for database crates who stops at the Applications entry sees programs, not libraries, and someone looking for a video tool who lands in Libraries sees building blocks, not something to run. When a category matters to you, check every place its name occurs. Browser find on the category name, rather than clicking the first table of contents link, is the reliable way to catch all of them.

Entries are alphabetical with one-line descriptions, so nothing is ranked

Each entry follows the same shape: a link to the repository, an optional crates.io link in double brackets when the crate name differs, a short description, and sometimes a CI or crates.io badge. The Applications section opens with ad-si/Woxi, an interpreter for the Wolfram Language, then alacritty, alexandrosnt/Reach, Andromeda, arimxyer/models, Arti and asm-cli-rust. That is alphabetical order, not order of quality, popularity or maturity.

For a reader, this means the list answers which Rust options exist for a domain, not which one to choose. A widely known project such as denoland/deno, described as a secure JavaScript and TypeScript runtime built with V8 and Tokio, sits beside small single-author tools with no visual distinction. There are no star counts, download numbers or recommendations in the entries. Treating position on the page as a signal will mislead you; you have to open each candidate and compare them yourself.

Descriptions come in each project's own words, including candid ones

The one-line descriptions read like the projects describing themselves, and that cuts both ways. Some are plain and specific: cloudflare/boringtun is a userspace WireGuard VPN implementation, and datavzrd creates interactive HTML reports from CSV, TSV, JSON or Parquet tables with a YAML configuration. DBX is a database management tool built with Tauri supporting MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB and more. Others carry their own caveats. The Arti entry, an implementation of Tor, says that so far it is a not-very-complete client.

That candor is useful, but it also means the list does not normalize claims. A word such as secure, lightweight or full-featured is the project's framing, not a finding by the list maintainers. Inclusion tells you an entry was accepted at some point; it does not certify current maintenance or quality. The badges are the closest thing to a live signal, so follow them to the project's CI and crates.io pages before you depend on anything.

The repository is also a Rust crate that maintains the list

Despite being a list, awesome-rust has Cargo.toml, Cargo.lock and a src/ directory. The crate is named awesome-rust, version 0.1.0, uses the 2024 edition, and sets default-run to awesome-rust. Its dependencies include pulldown-cmark 0.8 for Markdown, reqwest 0.12 with rustls TLS and JSON features, tokio, scraper 0.26, serde_yaml, diffy, chrono with chrono-humanize, and octocrab pulled straight from its git repository with the comment Because PR definition is wrong. The README badges link to two GitHub Actions workflows, lint.yml and rust.yml, and the root carries .markdownlint.json and a results/ directory.

The practical point for readers is that this crate serves the list's upkeep. It is not a library to add to your own Cargo.toml and there is nothing in it for you to install. The repository publishes no GitHub releases either, so the README on main is the product.

Artificial Intelligence is split by vendor as well as by technique

Most library categories are single buckets, but Artificial Intelligence has subcategories: Genetic algorithms, Google Gemini, Machine learning, OpenAI and Tooling. Two of those are named after specific providers rather than techniques. If you need a client for one of those APIs, the vendor subcategory is the direct route. If you need model-agnostic infrastructure, Machine learning and Tooling are where to look instead.

This also shows how the list grows: categories reflect what contributors submit, not a fixed taxonomy. Several other categories exist that a reader might not expect, including Automotive, Bioinformatics, Domain driven design, eBPF, Licensing, Peripherals and Reverse engineering. The Applications side has Industrial automation, MLOps, Payments and Routing protocols. Scanning the full table of contents once before searching often turns up a closer category than the one you had in mind, and saves you from concluding that Rust has nothing for a niche that the list actually covers.

Contributing runs through CONTRIBUTING.md, and the list stays current through main

The README's only instruction to contributors is to read CONTRIBUTING.md before submitting. The linting workflow and the markdownlint configuration mean that an entry has to fit the existing format to pass checks, so copying the shape of a neighboring entry, with its repository link, optional crates.io link and short description, is the safe approach. Entries are placed in alphabetical position within their category.

The list is actively updated; the last push to main was on 2026-11-02. Because there are no releases, there is no changelog to read for what was added. The README links a badge to trackawesomelist.com's page for the repository, which is the outside view of recent additions. The content is released under CC0-1.0, the license file is LICENSE.txt, and the README ends with a License section of its own.

Editorial conclusion

awesome-rust is the right starting point when you know the domain you need, such as eBPF, geospatial, FFI or a Tauri desktop app, and want a set of Rust candidates to compare. It is the wrong tool for deciding which crate is best, because entries sit in alphabetical order with one-line descriptions and no ranking. Before adopting anything you find there, open the linked repository and its CI or crates.io badge, check both the Applications and Libraries sides of the category, and judge maintenance yourself.

Frequently asked questions

What are the best Rust crates according to awesome-rust?

awesome-rust does not rank crates. Entries in each Libraries category appear in alphabetical order with a one-line description and sometimes a CI or crates.io badge, so you compare candidates yourself.

Can I install awesome-rust as a crate?

No. awesome-rust does contain a Cargo.toml for a crate named awesome-rust at version 0.1.0, but that crate supports maintenance of the list, and the repository publishes no GitHub releases.

How is the awesome-rust list organized?

awesome-rust has three main groups, Applications, Development tools and Libraries, followed by Registries, Resources and License. Several category names, such as Database and Video, appear under both Applications and Libraries.

Official sources

  1. Official README
  2. Project repository
  3. README
  4. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/rust-unofficial-awesome-rust.svg)](https://hysenlabs.com/projects/rust-unofficial-awesome-rust)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/rust-unofficial-awesome-rust.svg)](https://hysenlabs.com/projects/rust-unofficial-awesome-rust)

Was this useful?