Rust Cargo

Open-source Rust projects categorized as Cargo

Top 23 Rust Cargo Projects

  • GitHub repo juniper

    GraphQL server library for Rust

    Project mention: A web framework I desperately wish there was a Rust equivalent for: FastAPI | reddit.com/r/rust | 2021-03-07

    I know this is different but I'm in love with GraphQL and they look to have great Rust server support. https://github.com/graphql-rust/juniper

  • GitHub repo cargo-edit

    A utility for managing cargo dependencies from the command line.

    Project mention: Setting Up a gRPC Protobuf Server With Tonic | dev.to | 2021-04-12

    If you're used to rust, this shouldn't be difficult to follow. It's the general way that one starts a project in the rust world. You may need to install cargo-edit in order to have cargo add, but it's well worth it for managing dependencies in your cargo project.

  • GitHub repo cargo-watch

    🔭🚢 Watches over your Cargo project's source.

    Project mention: Rust is a hard way to make a web API | news.ycombinator.com | 2021-01-15

    A few points:

    > Once your code is compiled, everything’s amazing! But in my case, this basic API - which wasn’t even feature-complete and was by no means a complex system - took more than ten minutes to compile...Caching helps as long as you don’t have to rebuild cached dependencies.

    The author glossed over that last part, but at least from a workflow perspective, it makes a huge difference. In my experiments writing a web server in Rust, I used cargo-watch (https://github.com/passcod/cargo-watch) to automatically rebuild each time I made a change. The turnaround time was usually 1-2 seconds - nearly as fast as restarting a Node server, and about the same amount of time it takes me to alt-tab and test the change. I was using Serde, a high-level HTTP framework, and several other crates. It didn't matter, because they never had to be rebuilt.

    > Rust makes you think about dimensions of your code that matter tremendously for systems programming...It makes you think about real but unlikely corner cases and make sure that they’re handled...These are all valid concerns. But for most web applications, they’re not the most important concerns.

    I disagree strongly (at least about corner cases). Maybe you don't want to bother with this stuff when you're still in the prototyping phase, but once a service is fairly well established, it's definitely beneficial to be forced to think about corner-cases (both in libraries/IO, and in your own business logic that you've hopefully modeled with Rust's powerful type system). This IMO is one of Rust's main benefits; it's been called "the practical Haskell" before, and while its ecosystem isn't yet the most practical one for web servers, it is much more so than Haskell's.

    > The Rust ecosystem is not web-centric

    This is the strongest point, in my opinion. Rust's web ecosystem is definitely still in the early days, and this is partly because Rust's benefits aren't nearly as extreme in this usecase as they are in other usecases. There is for sure a chicken-and-egg problem as not enough companies are using Rust for web servers, which means not as much time is getting invested in the relevant libraries. I hope this changes; I don't know for sure that it will. It feels like it is, but very slowly. That said:

    > Unfortunately, a lot of the incredibly exciting work in the Rust ecosystem has nothing to do with web application servers. There are some promising web frameworks - even a somewhat higher-level framework - but they’re undoubtedly in a niche. Even Actix, the main web framework, has a very top-heavy set of contributors.

    The author failed to mention or wasn't aware of Rocket (https://rocket.rs/), an up-and-coming Rust web framework that's extremely exciting and provides a programming model that's strikingly similar to Flask or Express. It's still in 0.X releases, the current release doesn't build on stable rustc (though the master branch does!), you're still going to have a hard time finding SDKs for auth and payment and cloud, etc.

    But the important thing is that it shows what's possible. Web servers can be ergonomic to write in Rust, benefiting from its wonderful type system and performance, with very few sacrifices. Hopefully enough companies will start catching on to that, and the ecosystem will flesh out.

  • GitHub repo tarpaulin

    A code coverage tool for Rust projects

    Project mention: 📽 2 videos about rust code coverage in VSCode | dev.to | 2020-10-11

    cargo tarpaulin: analyzes your rust code and gives you code coverage data

  • GitHub repo cargo-make

    Rust task runner and build tool.

    Project mention: Approach for releasing an application that has assets | reddit.com/r/rust | 2021-03-24

    Have you checked out cargo make?

  • GitHub repo xargo

    The sysroot manager that lets you build and customize `std`

    Project mention: Hey Rustaceans! Got an easy question? Ask here (53/2020)! | reddit.com/r/rust | 2020-12-28

    If you need to pass arguments to rustc, try cargo rustc or RUSTFLAGS instead of invoking it manually. If you're cross-compiling, check out cross (uses Docker) or xargo.

  • GitHub repo cargo-audit

    Audit Cargo.lock files for crates with security vulnerabilities

    Project mention: The modern packager’s security nightmare | reddit.com/r/programming | 2021-02-20

    The Rust community is very much concerned with security, to the point that it maintains RustSec, a security advisory database for all libraries and binaries released publicly on crates.io.

  • GitHub repo cargo-fuzz

    Command line helpers for fuzzing

    Project mention: Efficiently reading utf-8 chars from a large file: How to improve, test and benchmark my implementation ? | reddit.com/r/rust | 2021-03-06

    Check out https://rust-fuzz.github.io/book/cargo-fuzz.html

  • GitHub repo cargo-generate

    cargo, make me a project

    Project mention: Is there a crate to ask the user for missing command line arguments? | reddit.com/r/rust | 2021-03-04

    I don't know of any that do that automatically. But if you take a look at cargo-generate which does have an 'interactive' mode, it seems they're using a the dialoguer crate.

  • GitHub repo mongo-rust-driver

    The official MongoDB Rust Driver

    Project mention: Mongodb rust driver upgrade causing very large actix-web request latency | reddit.com/r/rust | 2021-02-21

    you'd be better off asking in their repo. Also https://github.com/mongodb/mongo-rust-driver#requirements

  • GitHub repo cargo-outdated

    A cargo subcommand for displaying when Rust dependencies are out of date

    Project mention: [Utility] Announcing version-checker - It Does What It Says on the Tin and More, Trust Me | reddit.com/r/rust | 2021-01-12

    So it merges functionality of cargo-outdated and cargo-audit?

  • GitHub repo cargo-release

    Cargo subcommand "release": everything about releasing a rust crate.

    Project mention: 🦀 Publishing My First Rust Crate | dev.to | 2021-01-11

    Use cargo-release and setup pre-release hooks and replacements.

  • GitHub repo rustfix

    Automatically apply the suggestions made by rustc

  • GitHub repo cargo-deny

    ❌ Cargo plugin for linting your dependencies 🦀

    Project mention: A reminder that you should double-check your software licenses | news.ycombinator.com | 2021-03-04

    Would be nice if built in, but cargo-deny is a neat project by Embark that can do this: https://github.com/EmbarkStudios/cargo-deny

  • GitHub repo cargo-deb

    A cargo subcommand that generates Debian packages from information in Cargo.toml

    Project mention: Rustup, Cargo, Rustc?? | reddit.com/r/rust | 2021-03-01

    cargo install does provide different options to change the installation dir (https://doc.rust-lang.org/cargo/commands/cargo-install.html) but I am uncertain, if there could be accociated issues. An alternative could be tools like https://github.com/mmstick/cargo-deb or https://github.com/iqlusioninc/cargo-rpm that can automatically create packages which can be used for a proper installation /usr/bin/ using your distributions packaging system.

  • GitHub repo cargo-script

    Cargo script subcommand

    Project mention: Run Rust source code like a script (Linux) | reddit.com/r/rust | 2021-04-11
  • GitHub repo cargo-update

    A cargo subcommand for checking and applying updates to installed executables

    Project mention: Is there a tool like cargo outdated for crates installed via cargo? | reddit.com/r/rust | 2020-12-27
  • GitHub repo kondo

    Save disk space by cleaning non-essential files from software projects.

    Project mention: Build Times And Target Directory Size | reddit.com/r/rust | 2020-08-27
  • GitHub repo cargo-lipo

    Cargo subcommand to automatically create universal libraries for iOS.

  • GitHub repo alexandrie

    An alternative crate registry, implemented in Rust.

    Project mention: Run crates.io and package proxy locally | reddit.com/r/rust | 2021-03-20

    There's also https://github.com/Hirevo/Alexandrie

  • GitHub repo cargo-benchcmp

    A small utility to compare Rust micro-benchmarks.

  • GitHub repo cargo-chef

    A cargo-subcommand to speed up Rust Docker builds using Docker layer caching.

    Project mention: Github actions 10 mins deploy for small dockerized web app | reddit.com/r/rust | 2021-03-10

    The docker bits are more complicated. cargo chef makes it so you that docker can actually cache the layers for compilation, so past that you just need to cache the docker layers. The issues I've had were that restoring and saving the docker layers with github actions started taking more time than just rebuilding everything.

  • GitHub repo cargo-modules

    A cargo plugin for showing a tree-like overview of a crate's modules.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-04-12.

Index

What are some of the best open-source Cargo projects in Rust? This list will help you:

Project Stars
1 juniper 3,643
2 cargo-edit 1,703
3 cargo-watch 1,306
4 tarpaulin 1,119
5 cargo-make 923
6 xargo 846
7 cargo-audit 756
8 cargo-fuzz 730
9 cargo-generate 702
10 mongo-rust-driver 652
11 cargo-outdated 614
12 cargo-release 609
13 rustfix 589
14 cargo-deny 552
15 cargo-deb 538
16 cargo-script 513
17 cargo-update 511
18 kondo 387
19 cargo-lipo 292
20 alexandrie 254
21 cargo-benchcmp 251
22 cargo-chef 226
23 cargo-modules 223