libs-team
clap-rs
libs-team | clap-rs | |
---|---|---|
13 | 154 | |
107 | 13,327 | |
1.9% | 1.6% | |
6.3 | 9.5 | |
3 months ago | 6 days ago | |
Rust | 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.
libs-team
-
Error when using cxx to link a Rust-written library in a C++ project
In rust, both release and debug builds use a release version of the runtime. The bugs the debug version is meant to catch are much more difficult to hit in rust (often but not always requiring unsafe). There isn't currently a feature to use the debug runtime in rust-- you can only change C to match for those debug builds.
-
log is going to bump msrv to 1.60
Note that this has been discussed at length (and I do mean "at length") here: https://github.com/rust-lang/libs-team/issues/72
-
Why We Love Rust: Ferris Is Only Part Of It
The Compiler Team, especially the Diagnostics Working Group that improves compiler error messages. The Libs Team, for work on the contents of the standard library documentation
-
Rust in 2023: Growing Up
See https://github.com/rust-lang/libs-team/issues/72#issuecommen... for what I believe is an exhaustive list of possible ways of helping the situation.
-
time: MSRV policy is changing beginning 2023-07-01 to N-2 rustc versions
The point is how the MSRV of a popular crate affects this dynamic for other crates. For an even more extreme example than time, see here for libc, with many heavyweights offering opinions: https://github.com/rust-lang/libs-team/issues/72
-
What are binary crate MSRV policy best practices?
In case you haven't seen it yet, there is a very long discussion surrounding MSRV policy of the libc crate on rust-langs github repo. It's about a library, not a binary, but I think there's a lot of information in the thread, some of which will also apply to binaries.
-
(pre-announcing) clap 4.0, a Rust CLI argument parser
Would you mind sharing your use case for being stuck with a particular version of Rust and why you can't upgrade? In particular with the libs team: https://github.com/rust-lang/libs-team/issues/72
-
Azure CTO: “It's time to halt starting any new projects in C/C++ ”
Compare Stepanov's brilliant design of the STL to Rust's current reworking of their 'binary search api'. https://github.com/rust-lang/libs-team/issues/81
Maybe 'memory safety' isn't the most important thing in this world. To me, writing software that does useful things in the simplest and most correct way is what matters. I get the feeling it's harder to understand my program's correctness with Rust (I mean algorithmic correctness). The C++ standard library has time and space complexity for every algorithm. I'm not seeing that's the case with Rust (correct me if I'm wrong).
-
Is anyone actually stuck on an old version of Rust
There's also the pretty fundamental libc crate that wants to choose an MSRV policy and you can see the full discussion here: https://github.com/rust-lang/libs-team/issues/72
- For rust, I have never see a real world project contains million lines of code, nor more than 1000 components here.
clap-rs
-
Build Your Own curl - Rust
We will be using the library for Clap - A simple-to-use, efficient, and full-featured library for parsing command line arguments and subcommands.
-
CLI Contexts
I recently came across this question (and associated answer) on the clap repository. The answer given is a good one. But I wanted to expand with my own findings and practices, which spurred the motivation for this post.
-
Getting Started with CLI tools in Rust using Clap
We can also use tuple-like struct syntax and named-field struct syntax for enum variants within our enum; this is because unlike in other OOP languages, Rust enums are actually sum types. You can read more about how powerful Rust enums are in another article we wrote here. You can have optional arguments by simply wrapping the types in Option, but if you want to add a flag to a command you can use bool, since clap recognises that flags are either there or not there. Let's have a look at what this might look like:
-
Flow Updater JSON Creator
I began by developing a wrapper for the CurseForge API, which turned out to be a lengthy and challenging process but constituted the bulk of the work. Next, I coded the CLI, which was relatively straightforward. Instead of using the clap crate, a Rust tool for generating CLIs, I opted for the following line of code:
-
netcrab: a networking tool
By this time I had already gotten tired of parsing arguments by myself and had looked for something to help with that. I found a really dang good argument parsing library called clap. What makes it so cool is it's largely declarative for common uses. You simply mark up a struct with attributes, and the parser automatically generates the usage and all the argument parsing code.
-
Grimoire - A recipe management application.
How CLI arguments are handled (using clap).
- Rust 1.72.0
-
I made an alternative --help renderer for clap based applications
Is this just referring to wrapping based on the terminal width? That is supported with the wrap_help feature though I have been considering making it a default feature.
-
Looking for advice around project direction using artix-web
CLI, use Clap. If you want to get fancy, use Tui.
-
Build a HTTP server with Rust and tokio - Part 1: serving static files
As our CLI is getting more complex, we'll use the clap crate to parse the command line arguments.
What are some alternatives?
awesome-rust - A curated list of Rust code and resources.
structopt - Parse command line arguments by defining a struct.
meta-rust - OpenEmbedded/Yocto layer for Rust and Cargo
argh - Rust derive-based argument parsing optimized for code size
docs.rs - crates.io documentation generator
docopt.rs - Docopt for Rust (command line argument parser).
namespacing-rfc - RFC for Packages as Optional Namespaces
argparse-benchmarks-rs - Collected benchmarks for arg parsing crates written in Rust [Moved to: https://github.com/rosetta-rs/argparse-rosetta-rs]
sccache - Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.
easy_flag - Simple command line flag parser for rust.
sled - the champagne of beta embedded databases
serde - Serialization framework for Rust