getargs
convey
getargs | convey | |
---|---|---|
6 | 2 | |
42 | 330 | |
- | - | |
0.0 | 0.0 | |
10 months ago | almost 3 years ago | |
Rust | Rust | |
MIT License | 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.
getargs
-
Announcement: xflags 3.0.0
Actually, I would say getargs on this one. Full disclosure, I'm a major contributor to the library, but it is also faster than lexopt, and provides a bit more control.
-
Inlining functions that will only ever be called once - is this a good convention?
I have benchmarked getargs to have significant performance gains from inlining.
-
How do i learn about new crates?
I'd recommend getargs over argparse, it's also very well documented (but that version is not on crates.io yet)
-
How to parse `strace -c ls -a` using clap?
It pains me that getargs 0.5.0 is still not released yet. If you can deal with a git dependency, I would highly recommend it, it can do exactly what you want with no fuss.
-
What's everyone working on this week (23/2022)?
I'm currently working on bringing up getargs, which was abandoned on crates.io over 2 years ago. It has an API design that I agree with and I wanted to make it great, so I'm giving it a visit from the PR fairy.
-
What are legitimate problems with Rust?
If it's perfectly fine then it shouldn't be terribly difficult to write it in a way that the borrow checker is happy with. The problem is reformulating your problem such that it's easy to either annotate the lifetimes in that way or have the compiler infer them for you. And it's made more difficult if your libraries have incorrectly elided lifetimes.
convey
-
Rust went from side project to world’s fastest growing language
Few years back, Convey[1] has apparently outran HAProxy in an alleged benchmark by the author[2]. That's a one man project (now abandoned, sadly) outrunning a decade old product built by an enterprise company AND a big community AND spearheaded and designed by a data structure genius. Granted, only in one of many tricks HAProxy can pull, but still. Not a database but indeed a concurrent world-facing RealWork software. If true (didn't actually check myself), I'd say it fits your bill.
Personally, I read that as "can be as fast as, but without you having to be Willy Tarreau level genius" which is all I need.
It's easier/more-intuitive to do a lot of things in C++, but safe, high performing C++ is certainly harder than safe, high performing Rust for huge swaths of use-cases. Also, as has been mentioned, its type system that benefitted from the PL research since the 80s also allows for nicer expression of business logic. In particular, this means that in Rust, unlike C, Go, or even C++ in great part, you are not writing in the same low-level intricate language at every level of your stack i.e. it can be a nicer high-level experience the higher you go if you designed your lower tiers well.
And that last thing to me is the biggest advantage it has over the competition.
Off course, there is also the fact that juggling dependencies in a non-trivial C++ project was a nightmare until recently with vcpkg and it's manifest mode and that will take probably another decade to become commonplace in the ecosystem (if ever).
[1]: https://github.com/bparli/convey
-
What's everyone working on this week (23/2022)?
custom domain-specific load balancer based on convey code (https://github.com/bparli/convey)
What are some alternatives?
faketty - Wrapper to exec a command in a pty, even if redirecting the output
gcpp - Experimental deferred and unordered destruction library for C++
async-fundamentals-initiative
rust-beginner-projects - Rust projects for beginners to familiarise themselves with rust
lexopt - Minimalist pedantic command line parser
xflags
clap-rs - A full featured, fast Command Line Argument Parser for Rust
ponyc - Pony is an open-source, actor-model, capabilities-secure, high performance programming language
strop - Stochastically generates machine code
bpaf - Command line parser with applicative interface
actix-telepathy - Cluster extension for actix
cargo-supply-chain - Gather author, contributor and publisher data on crates in your dependency graph.