+
Skip to content

Releases: uutils/coreutils

0.2.2

09 Sep 20:31
3a07ffc
Compare
Choose a tag to compare

Rust Coreutils 0.2.2 Release:

This is a patch release focused on critical infrastructure fixes to ensure reliable distribution and deployment across different platforms.
We also improved the performance of base64 to be faster than the GNU implementation (1.56 times faster).

What's Changed

base64

  • base64: improve perfs by using the base64-simd crate by @sylvestre in #8578

cp

  • cp: fix copying current directory (.) to existing directory by @Vesal-J in #8565

nl

stty

uucore

Distribution & Build

Documentation

Dependencies

  • chore(deps): update rust crate winapi-util to v0.1.11 by @renovate[bot] in #8570
  • fix(deps): update rust crate console to v0.16.1 by @renovate[bot] in #8577
  • chore(deps): update rust crate chrono to v0.4.42 by @renovate[bot] in #8576
  • chore(deps): update rust crate linux-raw-sys to 0.11 by @renovate[bot] in #8580

New Contributors

Full Changelog: 0.2.0...0.2.2

0.2.0

06 Sep 13:06
38a248c
Compare
Choose a tag to compare

📦 Rust Coreutils 0.2.0 Release:

We are excited to announce the release of Rust Coreutils 0.2.0 — our first fully internationalized release!
This milestone brings comprehensive localization support, major performance improvements, and enhanced Unicode handling.


Highlights:

  • Full Internationalization & Localization
    Complete translation infrastructure using Mozilla's Fluent framework with French translations included.
    Support for complex plural forms (Arabic, Hebrew, etc.) and locale-aware formatting.
    Even error messages from clap are fully localizable!

  • Community Translation Platform
    Join our translation efforts at Weblate
    or contribute directly via our l10n repository

  • Unicode & Non-UTF8 Path Support
    All programs now handle non-UTF8 paths seamlessly while supporting full Unicode features.
    Example: echo "🍔🍟🥤" | cut -d"🍟" -f1 works perfectly with emoji delimiters!

  • Massive Performance Gains
    Notable example: tr went from 9.81x slower than GNU to 1.58x faster — a 15x improvement!
    Additional optimizations in sort, cat, and other utilities.

  • Enhanced GNU Compatibility
    538 passing tests (+16 from 0.1.0), with reduced failures from 65 to 52.
    Continued improvements in edge case handling and behavior matching.

  • Production Ready for Ubuntu
    As part of Ubuntu's announcement of plans to integrate Rust Coreutils, this release focuses on stability and compatibility improvements to ensure Ubuntu users have the best possible experience.

  • Contributions
    This release includes 1183 commits from 46+ contributors, including 28 newcomers!
    All this with a code coverage about 87%!


GNU Test Suite Compatibility:

Result 0.1.0 0.2.0 Change 0.1.0 to 0.2.0 % Total 0.1.0 % Total 0.2.0 % Change 0.1.0 to 0.2.0
Pass 522 538 +16 84.46% 87.06% +2.60%
Skip 31 27 -4 5.02% 4.37% -0.65%
Fail 65 52 -13 10.52% 8.42% -2.10%
Error 0 1 +1 0% 0.16% +0.16%
Total 618 618 0

GNU testsuite evolution


Call to Action:

🌍 Help us translate - Contribute translations at Weblate
🚀 Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
🔗 Download the latest release: https://uutils.github.io

What's Changed

basenc

basename

cat

  • Fix reporting "input file is output file" error when outputting to an input file by @frendsick in #8025
  • add error handling in write_fast function by @yuankunzhang in #8091
  • handle broken pipe gracefully by @tgrez in #8336

chmod

chown

chroot

cksum

cp

csplit

date

df

du

  • create the string into the main thread to avoid some translations issue by @sylvestre in #8338
  • du/ls: Merge date formatting code, and handle timestamps far in the future/past by just printing them by @drinkcat in #8390
  • du/ls: Unify file metadata time handling by @drinkcat in #8396
  • du/ls: Improve time-style handling based on GNU coreutils manual by @drinkcat in #8415

echo

env

expr

factor

fmt

fold

  • process streams as bytes, not strings, to handle non-utf8 data by @phinjensen in #8241

hashsum

head

install

ln

Read more

0.1.0

24 May 22:00
18b963e
Compare
Choose a tag to compare

📦 Rust Coreutils 0.1.0 Release:

We are excited to announce the release of Rust Coreutils 0.1.0 — our first 0.1 milestone!
This release brings major performance gains, SELinux support, and expanded GNU compatibility.


Highlights:

  • SELinux Support
    New SELinux integration in cp, ls, mkdir, mknod, mkfifo, install, and stat.
    Plus, SELinux-aware CI testing is now live!

  • Performance Improvements
    Notable speedups in cat, ls, wc, tail, seq, and more — many now match or exceed GNU performance.

  • Ubuntu Plans to Ship uutils
    Ubuntu is beginning to integrate Rust Coreutils into its base system!
    Oxidizing Ubuntu

  • Huge Contribution Wave
    This release includes 843 commits from 60+ contributors, including 40 newcomers!


GNU Test Suite Compatibility:

Result 0.0.30 0.1.0 Change 0.0.30 to 0.1.0 % Total 0.0.30 % Total 0.1.0 % Change 0.0.30 to 0.1.0
Pass 507 522 +15 82.17% 84.46% +2.29%
Skip 41 31 -10 6.65% 5.02% -1.63%
Fail 69 65 -4 11.18% 10.52% -0.66%
Total 617 618 +1 (new test)

GNU testsuite evolution


Call to Action:

🚀 Sponsor us on GitHub to help us grow faster: github.com/sponsors/uutils
🔗 Download the latest release & learn more: https://uutils.github.io

What's Changed

basenc

cat

chmod

  • chmod: Correct chmod -R on dangling symlink and tests by @CSRessel in #7618

chroot

  • Fix chroot trying to change into non-existent directory by @jplatte in #7803

cksum

cp

csplit

  • csplit: removed unnecesary implementation of Fromio::Error by @lukasx999 in #7778
  • csplit: don't add a newline if the file doesn't end with one by @Qelxiros in #7901

date

dd

df

du

echo

env

expr

  • expr: Refactor AST evaluation to avoid stack overflow by @LouisDISPA in #7388
  • expr: Escape anchor characters within pattern by @frendsick in #7842
  • expr: Fix regex anchor matching behavior with REGEX_OPTION_SINGLELINE by @frendsick in #7846
  • expr: Fix parsing negated character classes "[^a]" by @frendsick in #7884
  • expr: Fix parsing regex anchors '^' and '$' by @frendsick in #7953

false

  • true,false: remove unnecessary newline from version string by @cakebaker in #7446

fmt

head

hostid

hostname

  • Bump hostname & remove windows-core from skip list by @cakebaker in #7713

id

install

ls

mkdir

mkfifo

mknod

Read more

0.0.30

08 Mar 13:54
088599f
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.30 Release:

We are excited to announce the release of Rust Coreutils 0.0.30!

Highlights:

  • Improved Compatibility:
    • This release focused on compatibility with the upstream GNU Coreutils 9.6 release. This is why the number of passing tests didn't change much - our effort was directed at adapting to the new upstream version rather than fixing existing test failures.
    • Passing GNU tests increased to 507 (+1 compared to 0.0.29).
  • Contributions: This release was made possible by the dedication of 22 contributors, including 8 newcomers.
  • We also announced at FOSDEM the extension of this project to cover other key Linux tools through our uutils initiative. This will extend the Rust rewrite effort to additional common Unix tools. See the presentation on YouTube (slides) or read the LWN article for more details about our vision.

GNU Test Suite Compatibility:

Here's how version 0.0.30 compares to the previous release:

Result 0.0.29 0.0.30 Change 0.0.29 to 0.0.30 % Total 0.0.29 % Total 0.0.30 % Change 0.0.29 to 0.0.30
Pass 506 507 +1 82.38% 82.17% -0.21%
Skip 41 41 0 6.68% 6.65% -0.03%
Fail 67 69 +2 10.92% 11.18% +0.26%
Total 614 617 +3 (new tests)

GNU testsuite evolution

Call to Action:

Support our work by sponsoring us on GitHub! Your contributions directly help maintain our infrastructure and enable faster development. Sponsor us here.
For more details and to download the latest release, visit our website: https://uutils.github.io.

What's Changed

cat

chgrp

cksum

cp

  • disabled verbose output if file has been skipped by @BigPapa314 in #7347
  • fix verbose output order after prompt by @aimerlief in #7287

csplit

echo

expr

install

head

kill

ls

mv

  • show prompt for -u --interactive by @cakebaker in #7178
  • Make mv command fallback to copy only if the src and dst are on different device by @hamflx in #6040

numfmt

od

  • remove custom implementations of PartialEq and Eq by @alexs-sh in #7211

printf

  • (partially) fix hex format: exponent is decimal, correctly print negative numbers by @drinkcat in #7365
  • Show warning message in case of excess arguments by @RenjiSann in #7239
  • error on missing hexadecial escape value by @jfinkels in #7259
  • negative asterisk param changes alignment by @RenjiSann in #7246
  • Re-enable integer overflow test case for printf by @jfinkels in #7168

rm

seq

sort

  • errors on overflowing -k argument but shouldn't by @ic3man5 in #7188
  • needs support for human-readable block size suffixes R and Q by @ic3man5 in #7198
  • options -C and -c should be mutually exclusive but aren't by @ic3man5 in #7191
  • support percent arguments to -S option by @jfinkels in #7181

split

tee

test

timeout

touch

tr

uptime

yes

uucore

Documentation

Build & CI

  • add words to spell-checker:ignore in two...
Read more

0.0.29

18 Jan 21:35
64dad0c
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.29 Release:

We are excited to announce the release of Rust Coreutils 0.0.29!

Highlights:

  • Improved Compatibility:
    • Passing GNU tests increased to 506 (+30 compared to 0.0.28).
    • Failing tests reduced to 67 (-27 compared to 0.0.28).
  • Contributions: This release was made possible by the dedication of 32 contributors, including 18 newcomers.
  • Compared with 0.0.28, several commands now achieve 100% compatibility with GNU tests, including df, dircolors, chmod, chroot, comm, seq, split, uniq, and more.
  • Performance Boost: Optimizations in tools like du, echo, and seq.

GNU Test Suite Compatibility:

Here’s how version 0.0.29 compares to the previous release:

Result 0.0.28 0.0.29 Change 0.0.28 to 0.0.29 % Total 0.0.28 % Total 0.0.29 % Change 0.0.28 to 0.0.29
Pass 476 506 +30 77.65% 82.38% +4.73%
Skip 43 41 -2 7.01% 6.68% -0.33%
Fail 94 67 -27 15.34% 10.92% -4.42%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution


Call to Action:

Support our work by sponsoring us on GitHub! Your contributions directly help maintain our infrastructure and enable faster development. Sponsor us here.

For more details and to download the latest release, visit our website: https://uutils.github.io.

What's Changed

basenc

base32/base64

checksum

chmod

chroot

comm

cp

csplit

cut

date

dd

df

dircolors

du

echo

env

fmt

head

install

kill

ls

mkfifo

more

  • reduce memory usage ...
Read more

0.0.28

16 Nov 19:37
1d9e162
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.28 Release:

We are thrilled to announce the release of Rust Coreutils 0.0.28! This release brings significant improvements in compatibility and stability, continuing our journey to provide a robust alternative to GNU Coreutils.

Highlights:

  • Improved Compatibility:
    • Passing GNU tests increased to 476 (+21 compared to 0.0.27).
    • Failing tests reduced to 94 (-19 compared to 0.0.27).
  • Contributions: This release was made possible by the hard work of 37 contributors, including 16 newcomers.
  • Enhanced Performance: Updates and optimizations in utilities like cksum, mkdir, and tr.

GNU Test Suite Compatibility:

Here’s how version 0.0.28 compares to the previous release:

Result 0.0.27 0.0.28 Change 0.0.27 to 0.0.28 % Total 0.0.27 % Total 0.0.28 % Change 0.0.27 to 0.0.28
Pass 455 476 +21 74.35% 77.65% +3.30%
Skip 44 43 -1 7.19% 7.01% -0.18%
Fail 113 94 -19 18.46% 15.34% -3.12%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution

Call to Action:

Support our work by sponsoring us on GitHub! Your contributions help maintain our infrastructure and enable faster iterations. Sponsor us here.

For more details and to download the latest release, visit our website: https://uutils.github.io.

What's Changed

GNU Test Suite Compatibility

basenc

cat

cksum / hashsum

cp

date

dd

dircolors

echo

hashsum

  • When checksum file is untagged, detect the size by @sylvestre in #6499
  • On Windows, check in binary mode by default and allow --binary / --text by @Pistonight in #6808
  • Return error when only --strict or --quiet is given by @howjmay in #6584

hostname

  • Use dns-lookup crate to get network address(es) of the host by @lcheylus in #6550

join

ls

ln

mkdir

mv

od

paste

printf

runcon

  • Adjust error message for runcon and stdbuf to pass tests/misc/invalid-opt.pl by @sylvestre in #6657
  • Improve help message for runcon by @cakebaker in #6680

sort

Read more

0.0.27

23 Jun 17:12
9b11753
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.27 Release:

We are excited to announce the release of Rust Coreutils 0.0.27! This version continues to improve the compatibility.

This update adds +8 GNU passing tests compared to version 0.0.26 and therefore reduces the failing tests by -8.

This release saw contributions from 21 developers, including 9 newcomers.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

For more details and to download the latest release, visit our website at https://uutils.github.io.

What's Changed

GNU Test Suite Compatibility

Here’s how version 0.0.27 fares in comparison to the previous release:

Result 0.0.26 0.0.27 Change 0.0.26 to 0.0.27 % Total 0.0.26 % Total 0.0.27 % Change 0.0.26 to 0.0.27
Pass 447 455 +8 73.04% 74.35% +1.31%
Skip 44 44 0 7.19% 7.19% 0.00%
Fail 121 113 -8 19.77% 18.46% -1.31%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

cksum

cksum/hashsum

cp

df

env

fmt

id

  • Handle repeated flags, recognize conflict between pretty-print and passwd file-entry by @BenWiederhake in #6288

kill

ls

  • fix quoting alignment, add tests for default quoting style in TTY and quoting alignment by @RenjiSann in #6402
  • Fix ls: panicking on dangling symlink with --color=auto -l by @AnirbanHalder654322 in #6346

od

pinky

seq

  • fix typo in benchmarking documentation file by @TO19 in #6454

shuf

sort

  • disable clippy::suspicious_open_options on OpenBSD by @lcheylus in #6292

tail

tr

  • calculate complement set early by @jalil-salame in #6340
  • Refuse to translate if set2 contains more than one unique characters and set1 contains a character class by @cvonelm in #6472
  • A [:lower:]/[:upper:] in set2 must be matched in set1 by @cvonelm in #6445
  • disallow classes besides [:upper:]/[:lower:] in set2 when translating by @cvonelm in #6424
  • Refuse to translate if set1 is longer than set2 and set2 ends in a character class by @cvonelm in #6470

uptime

utmpx

Misc

CI

Documentation

Testing

Dependencies

Read more

0.0.26

26 Apr 21:47
f95f363
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.26 Release:

We are happy to announce the release of Rust Coreutils 0.0.26! This version comes with several significant advancements, including the initial support for AIX, ensuring broader compatibility and reach. Despite the short period since our last release, we've managed to fix numerous compatibility issues, further aligning our tools with the latest GNU testsuite, now version 9.5.

This update adds +10 GNU passing tests compared to version 0.0.25.

New in this Release:

  • Beginning of the AIX Support
  • Updated GNU Reference: We've updated our testsuite to GNU Coreutils 9.5.
  • Improved Compatibility: Thanks to the community's efforts, we've addressed several compatibility issues, pushing our pass rate even higher.
  • Automated Builds: Binaries for the latest release are once again automatically generated.

This release saw contributions from 20 developers, including 12 newcomers.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

For more details and to download the latest release, visit our website at https://uutils.github.io.

GNU Test Suite Compatibility

Here’s how version 0.0.26 fares in comparison to the previous release:

Result 0.0.25 0.0.26 Change 0.0.25 to 0.0.26 % Total 0.0.25 % Total 0.0.26 % Change 0.0.25 to 0.0.26
Pass 437 447 +10 72.35% 73.04% +0.69%
Skip 50 44 -6 8.28% 7.19% -1.09%
Fail 117 121 +4 19.37% 19.77% +0.40%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

Full Changelog: 0.0.25...0.0.26

What's Changed

cksum

comm

cp

csplit

cut

date

dd

dirname

dircolors

du

  • Give -h output the same precision as GNU coreutils by @mvo5 in #6226

env

hashsum

head

  • Two new tests. Improves function coverage from 38 to 75 by @jadijadi in #6195

kill

ls

mktemp

more

mv

  • Fix bug on Redox OS introduced by xattr handling by @dahc in #6215

od

seq

  • Removed zero-padding of string when parsing with parse_exponent_no_decimal by @maxer137 in #6185
  • Add the unit test even if they are failing for now by @sylvestre in #6236

tail

  • Allow multiple usage of --pid to match upstream (regression of … by @sylvestre in #6147

tee

tr

uniq

wc

Misc

### Security

Documentation

CI

Read more

0.0.25

23 Mar 20:56
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.25 Release:

We're thrilled to announce version 0.0.25. We added +15 GNU passing tests since our last update!
More and more programs have a full compatibility with the GNU testsuite.
The current list is: base64, basename, cat, chgrp, chmod, chown, dirname, expand, fold, groups, join, ln, mktemp, nice, nl, nproc, paste, pathchk, printenv, realpath, shuf, sleep, split, sync, unexpand, uniq, wc and yes.

This release saw contributions from 31 developers, including 14 newcomers.

Some of this work has been supported by the Sovereign Tech Fund.

If you want to help us, please consider sponsoring on GitHub. This helps us use better tools like GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

Visit our website at https://uutils.github.io.

GNU test suite compatibility

Here's how version 0.0.25 compares to the previous release - running GNU/Coreutils 9.4:

Result 0.0.24 0.0.25 Change 0.0.24 to 0.0.25 % Total 0.0.24 % Total 0.0.25 % Change 0.0.24 to 0.0.25
Pass 422 437 +15 69.87% 72.35% +2.48%
Skip 50 50 0 8.28% 8.28% 0.00%
Fail 132 117 -15 21.85% 19.37% -2.48%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

What's Changed

base32/base64/basenc

basename

cat

chcon

chmod

  • Fix chmod -c --reference reporting when no change is made by @mtimaN in #6016
  • Fix handling of preserve root flag and error messages by @BenWiederhake in #6042

cksum

cp

csplit

cut

dd

df

  • switch from u64 to u128 to handle fs with large inodes nr by @cre4ture in #6071

du

echo

env

expand

factor

fmt

  • Make sure the goal is always positive when given a positive width by @sargas in #6094
  • fail if goal is bigger than default width by @cakebaker in #6096

hashsum

install

ln

ls

more

numfmt

od

  • disable failing test_od::test_f16() for android CI by @cre4ture in #5984
  • re-enable f16 test with newer AVD system image by @cre4ture in #6099

printf

pr

seq

shuf

sort

split

stat

Read more

0.0.24

25 Jan 22:49
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.24 Release:

We've got +29 more GNU tests passing than in our last release! We are getting closer to version 1.0: each test passed is a step forward in ensuring that our users have a reliable and robust set of utilities that align closely with GNU standards.

49 developers contributed to this release (28 new contributors started with this release).

A key highlight of this release is the expansion of support to new platforms and operating systems. Notably, the software has been ported to sparc64, OpenBSD, and Redox, broadening its usability across different system architectures and environments. This marks a significant step in making Rust Coreutils more versatile and accessible to a wider range of users and developers.

In addition to these expansions, the release has also focused on the integration of more fuzzing techniques, including differential fuzzing and OSS Fuzz integration.

We also contributed to the GNU implementation to improve their test coverage.

We would like to thank to the support the Sovereign Tech Fund for their support (more details later).

Visit our website at https://uutils.github.io.

If you want to help us, please consider sponsoring on GitHub. This helps us use better tools like GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

GNU test suite compatibility

Here's how version 0.0.24 compares to the previous release - running GNU/Coreutils 9.4:

Result 0.0.23 0.0.24 Change 0.0.23 to 0.0.24 % Total 0.0.23 % Total 0.0.24 % Change
Pass 393 422 +29 65.07% 69.87% +4.80%
Skip 49 50 +1 8.11% 8.28% +0.17%
Fail 160 132 -28 26.49% 21.85% -4.64%
Error 2 0 -2 0.33% 0.00% -0.33%

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

What's Changed

cat

cksum

cp

dd

df

dircolors

du

echo

expand

expr

fmt

hashsum

head

hostname

  • tests/hostname: disable failing test_hostname::test_hostname_ip on OpenBSD by @lcheylus in #5639

install

join

ls

Read more
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载