anyhow
pico-args
anyhow | pico-args | |
---|---|---|
13 | 11 | |
5,059 | 547 | |
- | - | |
8.5 | 3.0 | |
13 days ago | 7 months ago | |
Rust | Rust | |
Apache License 2.0 | MIT License |
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.
anyhow
-
I love building a startup in Rust. I wouldn't pick it again.
Depending on your use case, thiserror and/or anyhow.
-
Why Rust?
There is ? as well as the anyhow(https://github.com/dtolnay/anyhow) crate that deals with long nested result chains.
- Anyhow/src/ensure.rs: Rust macro with 675 lines
-
Is this a good way of handling errors in Rust?
There are crates out there that help you reduce this boiler plate. thiserror is good for creating custom errors and color-eyre or anyhow are good for dynamic errors.
-
Looking for general advice on toy project
Give anyhow a look.
-
Oops, I Did It Again...I Made A Rust Web API And It Was Not That Difficult
I've brought anyhow::Result into scope, making error handling super easy to use. We don't need to specify all our Error types. It can automatically convert any errors that implement std::error::Error, which should be all of them. If an error propagates all the way up to main(), we'll get all the info it's captured printed to stdout.
-
Idiomatic way to return/break if Err/None
Alternatively, if you've got a lot of error types and you're outside a library (so directly in a binary where you don't plan to reuse code elsewhere) you can use anyhow. This gives you an error type you can basically propagate any other error through. On top of that you can attach context information at every return. It's basically a more complicated Result>.
-
Using workspace for modularization is kind of painful?
One approach is to define a separate error type for each crate and then use anyhow, eyre or Box to wrap the error, whever a function can return errors originating in several different crates.
-
Can we please stop downvoting people who dislike Rust?
Have you tried anyhow and thiserror for making it as simple as .context("Message") or ? to type-convert and propagate errors up the call stack?
pico-args
- Improving build times for derive macros by 3x or more
-
Need a new args parser
That's because the maintainer does not consider it an issue but an implementation detail: https://github.com/RazrFalcon/pico-args/issues/15
-
An alternative to clap but with a stable API?
Maybe pico-args then?
-
Immediately off the top of your head what is the best Rust CLI library.
If I forget to get around to it, would you mind poking RazrFalcon/pico-args about adding it to the comparison chart? I really like using that thing as something I can link people to with just a quick explanation of that particular trade-off.
-
Best CLI arg parser for use in Rust to port from Perl with Getopt::Long?
If fewer dependencies is better, you can't get much fewer than pico-args, which has zero dependencies.
- What is the current proper way to get command line args ?
-
Creating an Argparse library [feedback would be appreciated]
You might also want to check out pico-args, Gumdrop, and lexopt to see if any of them meet your needs.
-
Can we please stop downvoting people who dislike Rust?
For example, The Rust compiler isn't slow; we are. and pico-args: Alternatives.
- pico-args: An ultra simple CLI arguments parser with 0 dependencies
-
New:`cargo-fuzzcheck` 0.5.0 and a series of decent, fast-to-compile crates to replace `syn`, `quote`, `serde-json`, and `toml-rs`
For example, I'd love to go from StructOpt to Gumdrop for parsing command-line arguments and cut my compile times and output size by an order of magnitude, but Gumdrop uses String internally, which means it'll panic if it encounters a Windows path with un-paired surrogates or a mojibake'd posix path... some of which I actually have.
What are some alternatives?
eyre - A trait object based error handling type for easy idiomatic error handling and reporting in Rust applications
lexopt - Minimalist pedantic command line parser
color-eyre - Custom hooks for colorful human oriented error reports via panics and the eyre crate
xflags
thiserror - derive(Error) for struct and enum error types
command-line-rust - Code for Command-Line Rust (O'Reilly, 2022, ISBN 9781098109417) https://learning.oreilly.com/library/view/command-line-rust/9781098109424/
rust - Rust language bindings for TensorFlow
structopt - Parse command line arguments by defining a struct.
cli-guidelines - A guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.
cargo-edit - A utility for managing cargo dependencies from the command line.
argh - Rust derive-based argument parsing optimized for code size