api-guidelines
cargo-auditable
api-guidelines | cargo-auditable | |
---|---|---|
32 | 23 | |
1,199 | 553 | |
0.3% | 3.8% | |
3.3 | 7.8 | |
about 2 months ago | 6 days ago | |
Rust | ||
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
api-guidelines
- Best practices for designing traits in public crates?
-
Functional Options Pattern in Go and Rust
Just wanting to let this here for some further input: - https://rust-lang.github.io/api-guidelines/ - https://rust-unofficial.github.io/patterns/ - https://deterministic.space/elegant-apis-in-rust.html
-
Hey Rustaceans! Got a question? Ask here (15/2023)!
The API guidelines will help you write nice APIs. Clippy will usually at least find some things, try running with -Wclippy::pedantic for a lot more messages. Also you can ask mentors for specific guidance. Hope that helps.
-
Naming traits
There has been some previous discussion on this here: https://github.com/rust-lang/api-guidelines/discussions/28
-
What is the proper guidance on using generics as parameters for an API
I'm currently writing an API and using the API guidelines book. On the Flexibility page, there's a section on using generics as function parameters to minimize assumptions. The issue that I'm having is that the only example it gives is std::fs::File::open. Specifically, I want to know what is the "standard" way to use generics as parameters?
-
Prefixes in name and Reexports
I search up in the rust-api-guideline, but no luck finding something like this. There used to be an Organization according to this thread, but upon digging the repo commits, it was deleted by this commit. "We can reintroduce this section if we come up with a way to give firmer advice here."
-
What are some good practices when writing rust?
public api of a library should follow Rust API Guidelines.
-
astro-float 0.6.6 arbitrary precision floating point library update
API was made compliant with Rust API Guidelines.
-
Picking Up Rust Before C With My Goals In Mind?
Finally, there's also the Little Book of Rust Books where you could look for tutorial materials or things like like Rust Design Patterns, Rust API Guidelines, and The Rust Performance Book. (See also rust-learning)
-
Learning rust
Rust API Guidelines: If you're planning on building libraries or APIs in Rust, these guidelines provide recommendations for designing and presenting APIs in the language. They're written by the Rust library team, based on their experience building the Rust standard library and other crates in the ecosystem.
cargo-auditable
-
Rust Offline?
Further we use cargo-auditable and cargo-audit as part of both our pipeline and regular scanning of all deployed services. This makes our InfoSec and Legal super happy since it means they can also monitor compliance with licenses and patch/update timings.
-
Hey Rustaceans! Got a question? Ask here (15/2023)!
This exists, see cargo auditable.
-
The Rust Implementation Of GNU Coreutils Is Becoming Remarkably Robust
The Rust community seems to have settled on a perfectly reasonable way to address bit-rot in statically linked binaries. https://github.com/rust-secure-code/cargo-auditable
-
Release Engineering Is Exhausting So Here's cargo-dist
Would you be open to integrating cargo auditable into this pipeline in some form? It seems like a great match.
-
Swift Achieved Dynamic Linking Where Rust Couldn't
> and static compilation probably just hides the problem unless security scanners these days can identify statically compiled vulnerable versions of libraries
Some scanners like trivy [1] can scan statically compiled binaries, provided they include dependency version information (I think go does this on its own, for rust there's [2], not sure about other languages).
It also looks into your containers.
The problem is what to do when it finds a vulnerability. In a fat app with dynamic linking you could exchange the offending library, check that this doesn't break anything for your use case, and be on your way. But with static linking you need to compile a new version, or get whoever can build it to compile a new version. Which seems to be a major drawback of discouraging fat apps.
1: https://github.com/aquasecurity/trivy
2: https://github.com/rust-secure-code/cargo-auditable
-
'cargo auditable' can now be used as a drop-in replacement for Cargo
I have investigated a bunch of standardized formats - SPDX, CycloneDX, etc. All of them are unsuitable for a variety of reasons, chief of which are being way too verbose and including timestamps, which would break reproducible builds.
-
sccache now supports GHA as backend
The fix for interoperability with cargo auditable has also shipped in the latest release of sccache. You can use the released sccache now instead of building it from git!
-
`cargo audit` can now scan compiled binaries
I've been working to bring vulnerability scanning to Rust binaries by creating cargo auditable, which embeds the list of dependencies and their versions into the compiled binary. This lets you audit the binary you actually run, instead of the Cargo.lock file in some repo somewhere.
-
Here's how to patch the upcoming OpenSSL vulnerability in Rust
cargo auditable solves this problem by embedding the list of dependencies and their versions into the binaries. But until it becomes part of Cargo and gets enabled by default, static linking will remain problematic.
- Introducing cargo-auditable: audit Rust binaries for known bugs or vulnerabilities in production
What are some alternatives?
wasm-bindgen - Facilitating high-level interactions between Wasm modules and JavaScript
trivy - Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more
patterns - A catalogue of Rust design patterns, anti-patterns and idioms
auto-fuzz-test - Effortlessly fuzz libraries with large API surfaces
too-many-lists - Learn Rust by writing Entirely Too Many linked lists
cargo-supply-chain - Gather author, contributor and publisher data on crates in your dependency graph.
idiomatic-rust - 🦀 A peer-reviewed collection of articles/talks/repos which teach concise, idiomatic Rust.
eve-rs - A simple, intuitive, express-like HTTP library
rust - Empowering everyone to build reliable and efficient software.
svntogit-community - Automatic import of svn 'community' repo (read-only mirror)
gdnative - Rust bindings for Godot 3
sandbox - A sand simulation game