An update on rust/coreutils: some binaries are significantly faster than GNU

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • coreutils

    Cross-platform Rust rewrite of the GNU coreutils

  • If you needed to do low level systems programming in Rust would you be able to use this as an OS abstraction layer by importing these sorts of things: https://github.com/uutils/coreutils/blob/main/src/uu/chmod/s...

    Is this one of the intentions of this team? It sounds like it could make "scripting" in rust very nice if all of the CLI functions you're used to exist as language libraries.

  • argparse-benchmarks-rs

    Discontinued Collected benchmarks for arg parsing crates written in Rust [Moved to: https://github.com/rosetta-rs/argparse-rosetta-rs]

  • At least 500K comes from clap, the argument parsing library. That's how much true's size drops if you comment it out.

    It's a lovely library. Generated help text with colors and line wrapping based on your terminal width, informative error messages that suggest corrections for typos, and a declarative model that lets you express subtle relationships between options. You don't get that from getopt.

    But it's also pretty large. https://github.com/rust-cli/argparse-benchmarks-rs has some numbers.

    (Disclaimer: I wrote one of the competitors on that page, lexopt. But I also use clap, depending on the project, and I'm happy with it.)

  • 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.

    InfluxDB logo
  • coreutils

    upstream mirror (by coreutils)

  • Sometimes it's obscenely complicated because the GNU devs like showing off with even the simplest of programs. My favorite example is GNU yes, a coreutil that's so ludicrously fast[0] that it can cause OOM states in mere seconds if you're not careful where you're redirecting output. Other HN users have compared the GNU version[1] with the BSD one[2], and I think it's a pretty good way to grok the difference in style between the two. In any case, both tools work perfectly fine.

    [0] https://www.reddit.com/r/unix/comments/6gxduc/how_is_gnu_yes...

    [1] https://github.com/coreutils/coreutils/blob/master/src/yes.c

    [2] https://github.com/openbsd/src/blob/master/usr.bin/yes/yes.c

  • src

    Read-only git conversion of OpenBSD's official CVS src repository. Pull requests not accepted - send diffs to the tech@ mailing list.

  • Sometimes it's obscenely complicated because the GNU devs like showing off with even the simplest of programs. My favorite example is GNU yes, a coreutil that's so ludicrously fast[0] that it can cause OOM states in mere seconds if you're not careful where you're redirecting output. Other HN users have compared the GNU version[1] with the BSD one[2], and I think it's a pretty good way to grok the difference in style between the two. In any case, both tools work perfectly fine.

    [0] https://www.reddit.com/r/unix/comments/6gxduc/how_is_gnu_yes...

    [1] https://github.com/coreutils/coreutils/blob/master/src/yes.c

    [2] https://github.com/openbsd/src/blob/master/usr.bin/yes/yes.c

  • clap-rs

    A full featured, fast Command Line Argument Parser for Rust

  • This thread inspired me—I found a way to remove 40K: https://github.com/clap-rs/clap/pull/3370

    I'm sure it's possible to cut it more. It'll never be tiny, but it can be smaller than it is now.

  • coreutils-tracking

  • https://github.com/uutils/coreutils-tracking#binary-size-evo...

    This will help making sure that we aren't regressing (more) ;)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts