SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Rust Cargo Projects
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Dependency Management in Other Languages: We've discussed Python and Node.js in this article, but dependency management is a universal concept in programming. Exploring how you handle dependencies in other languages like Java, C#, or Rust could be beneficial. (I think Rust's cargo is an excellent example of a package manager.)
Project mention: The Linux Kernel Prepares for Rust 1.77 Upgrade | news.ycombinator.com | 2024-02-18This is a good guide on building small Rust binaries: https://github.com/johnthagen/min-sized-rust
This talks about going to extreme lengths on making the smallest Rust binary possible, 400 bytes when it was written, https://darkcoding.net/software/a-very-small-rust-binary-ind...
The thing is, you lose a lot of nice features when you do this, like panic unwinding, debug symbols, stdlib… for kernel and some embedded development it’s definitely important, but for most use cases, does it matter?
To compile a program with musl on a glibc system you can use cross-rs!
juniper
“cargo add” from https://github.com/killercup/cargo-edit has that behavior, but not the built in one that was added to cargo
Project mention: Cryptoflow: Building a secure and scalable system with Axum and SvelteKit - Part 0 | dev.to | 2024-01-04I used cargo-watch here so that every time my source changes, the server will automatically restart and re-serve the updated code.
It's been superseded by https://github.com/dtolnay/cargo-expand
cargo-make aims to be an extensive Rust-written task runner that additionally lets you define workflows to execute your tasks. You can install it using cargo install cargo-make.
Project mention: Implement React v18 from Scratch Using WASM and Rust - [1] Build the Project | dev.to | 2024-04-07cargo-generate: Quickly create Rust projects by using existing Git repositories as templates.
Project mention: Please add licenses to your projects, rust DS emulator Dust now dead. | /r/rust | 2023-06-28Tip: You can check the licenses of all your dependencies (recursively) using cargo-deny: https://github.com/EmbarkStudios/cargo-deny
cargo-audit is a simple Cargo tool for detecting vulnerable Rust crates. You can install it with cargo install cargo-audit, use cargo audit and you’re done! Any vulnerable crates will appear below, like so:
CI time. Do you want to micromanage your own docker images for all your CI? Great! If not, yes you do. In fact, you want to manage a docker image to build a docker image to use for CI. Use cargo-chef to prepare a build image with your dependencies pre-built if you want to do fine-grained build/test pipelines. Oh also, there's no jUnit test report generation, that was killed off today. (YES, SORRY, I'm still salty.)
recently i came across this issue when trying to share a mongo client across tests, it turns out that a mongo client should only be used on the runtime that created it. is this something i should worry about for channels, or will they work if the sender & receiver are on different runtimes?
My problem with maintaining a changelog during development is it can serve as a source of merge conflicts. Instead, I follow Covnentional Commit style and manually write my changelog entries based on the commits. I have a tool [0] that can show me the relevant commits for a package in my repo and automates the entire release process, including doing sanity checks.
I also feel like releasing from CI is hard, especially if you have multiple packages in a repo [1], including
- You can't as easily introspect the process
- You can't as easily recover from failure
- Getting a lot of the nuance right, like handling releases concurrent to merging of PRs, is difficult
- When the workflow is an ever-present "release PR" that you merge when ready has issues with selecting which packages to release and at what version
I have been considering making a tool to generate changelogs from fragments. Been keeping notes at https://github.com/epage/epage.github.io/issues/23
[0]: https://github.com/crate-ci/cargo-release
[1]: https://github.com/MarcoIeni/release-plz/discussions/1019
You can learn more about the features and install the pre-release here: https://github.com/axodotdev/cargo-dist/releases/tag/v0.4.0-prerelease.2
cargo-outdated
There is also rust-script[1] which runs "Rust files and expressions as scripts without any setup or compilation step." I wrote a data loader[2] in it for my Observable Framework project and have been very happy with its performance and overall ease including hot-reloading.
[1] https://rust-script.org
[2] https://observablehq.com/framework/loaders#routing
Rust Cargo related posts
- Rust 101
- Implement React v18 from Scratch Using WASM and Rust - [1] Build the Project
- Bacon – a background Rust code checker
- Cargo Script
- Rust Tooling: 8 tools that will increase your productivity
- Rust wont save us, but its ideas will
- GitUI
-
A note from our sponsor - SaaSHub
www.saashub.com | 23 Apr 2024
Index
What are some of the best open-source Cargo projects in Rust? This list will help you:
Project | Stars | |
---|---|---|
1 | Cargo | 11,958 |
2 | min-sized-rust | 7,410 |
3 | cross | 5,909 |
4 | juniper | 5,533 |
5 | cargo-edit | 2,985 |
6 | cargo-watch | 2,602 |
7 | cargo-expand | 2,427 |
8 | cargo-make | 2,387 |
9 | tarpaulin | 2,325 |
10 | cargo-generate | 1,773 |
11 | kondo | 1,605 |
12 | cargo-deny | 1,542 |
13 | rustsec | 1,521 |
14 | cargo-chef | 1,514 |
15 | cargo-fuzz | 1,443 |
16 | bacon | 1,436 |
17 | jql | 1,416 |
18 | mongo-rust-driver | 1,377 |
19 | cargo-release | 1,240 |
20 | cargo-dist | 1,222 |
21 | cargo-outdated | 1,134 |
22 | cargo-update | 1,125 |
23 | rust-script | 1,121 |
Sponsored