Rust Coreutils 0.1.0 Release

2 hours ago 3

📦 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

mktemp

more

mv

  • Implement Default for Options of mv and cp by @jmjoy in #7506
  • mv: fix moving FIFO to a different filesystem by @jfinkels in #7241
  • mv: use bool instead of Result as return type by @cakebaker in #7962
  • mv: factor rename_with_fallback function into helpers by @jfinkels in #7774

numfmt

od

pr

printf

ptx

rm

seq

  • seq: fix default float precision (%f); fix 0 scientific printing by @drinkcat in #7384
  • seq: Buffer writes to stdout by @drinkcat in #7485
  • seq: Directly write separator string, instead of using format by @drinkcat in #7562
  • seq: Do not allow -w and -f to be specified at the same time by @drinkcat in #7646
  • seq: Trim whitespaces, then try to remove + by @drinkcat in #7650
  • test_seq: Add a few more tests for corner cases by @drinkcat in #7527

shred

shuf

  • Make shuf OsStr-compliant and bring newline handling in line with GNU by @blyxxyz in #7463

sleep

sort

  • sort: immediately compare whole lines if they parse as numbers by @MoSal in #7567

split

stat

sum

sync

tail

tee

  • add tests/misc/tee.sh to the list of intermittent issues by @sylvestre in #7820

test

timeout

touch

  • Fix touch -t with 2 digit years when YY > 68 by @Carreau in #7378

tsort

uptime

uucore

  • Move ExtendedBigDecimal to uucore/format, make use of it in formatting functions by @drinkcat in #7458
  • uucore: format: num_format: add fmt function tests, and workaround 0e10 printing. by @drinkcat in #7514
  • uucore: format: num_parser: Use ExtendedBigDecimal by @drinkcat in #7556
  • uucore: format: Collection of small parser fixes by @drinkcat in #7623
  • seq: Move to uucore/format common number parsing code by @drinkcat in #7624
  • uucore: Move extendedbigdecimal and parsers to 2 separate features by @drinkcat in #7647
  • uucore: Minor fix to optional dependences by @RenjiSann in #7654
  • uucore: format: Fix hexadecimal default format print by @drinkcat in #7631
  • uucore: num_parser: Limit precision when computing 2**exp by @drinkcat in #7712
  • uucore: add chrono to uptime feature by @cakebaker in #7719
  • uucore/quoting_style: Add support for quoting/escaping empty strings by @sargas in #7693
  • fix(sleep): use uucore's from_str to support parsing hex by @Qelxiros in #7675
  • cp: factor make_fifo() function out to uucore::fs by @jfinkels in #7775
  • uucore: num_parser: Operate on slices, instead of iterator by @drinkcat in #7790
  • Move seq's fast_inc to uucore, use it in cat by @drinkcat in #7782
  • Allow compiling uucore with wasm32-unknown-unknown by @cptpiepmatz in #7840
  • uucore: add safe wrapper for getpgrp() by @eduardorittner in #7676
  • uucore/echo:handle ControlFlow result by @alexs-sh in #7881
  • selinux: use the uucore::selinux::is_selinux_enabled() function by @sylvestre in #7909
  • uucore: add functions to manage translations by @sylvestre in #7955

wc

whoami

yes

Selinux

Code quality

CI

Documentation

Dependency Updates

  • Bump iana-time-zone & add windows-core to skip list by @cakebaker in #7628
  • deny.toml: remove zerocopy from skip list by @cakebaker in #7773
  • Bump libc & remove unnecessary unsafe blocks by @cakebaker in #7434
  • Bump tempfile & fix deprecation warning by @cakebaker in #7922
  • Bump markdownlint action & fix warnings by @cakebaker in #7939
  • Bump nix & ctrlc, adapt code to API changes in nix by @cakebaker in #7971
  • Bump fluent and fluent-bundle by @cakebaker in #7980
  • chore(deps): update rust crate terminal_size to v0.4.2 by @renovate in #7425
  • chore(deps): update rust crate serde to v1.0.219 by @renovate in #7428
  • chore(deps): update rust crate clap to v4.5.32 by @renovate in #7432
  • fix(deps): update rust crate quote to v1.0.40 by @renovate in #7436
  • fix(deps): update rust crate tempfile to v3.19.0 by @renovate in #7444
  • chore(deps): update rust crate half to v2.5.0 by @renovate in #7445
  • chore(deps): update rust crate linux-raw-sys to v0.9.3 by @renovate in #7447
  • chore(deps): update vmactions/freebsd-vm action to v1.1.9 by @renovate in #7456
  • chore(deps): update rust crate zip to v2.3.0 by @renovate in #7467
  • chore(deps): update rust crate zip to v2.4.1 by @renovate in #7476
  • chore(deps): update rust crate time to v0.3.40 by @renovate in #7478
  • chore(deps): update rust crate blake3 to v1.7.0 by @renovate in #7489
  • chore(deps): update rust crate zip to v2.4.2 by @renovate in #7491
  • chore(deps): update rust crate clap_complete to v4.5.47 by @renovate in #7499
  • fix(deps): update rust crate tempfile to v3.19.1 by @renovate in #7500
  • chore(deps): update rust crate chrono-tz to v0.10.2 by @renovate in #7543
  • chore(deps): update rust crate time to v0.3.41 by @renovate in #7549
  • chore(deps): update rust crate zip to v2.5.0 by @renovate in #7547
  • chore(deps): update rust crate iana-time-zone to v0.1.62 by @renovate in #7555
  • chore(deps): update rust crate chrono-tz to v0.10.3 by @renovate in #7561
  • chore(deps): update rust crate hex-literal to v1 by @renovate in #7343
  • chore(deps): update rust crate selinux-sys to v0.6.14 by @renovate in #7424
  • chore(deps): update rust crate selinux to v0.5.1 by @renovate in #7421
  • chore(deps): update rust crate fts-sys to v0.2.16 by @renovate in #7420
  • chore(deps): update rust crate clap to v4.5.34 by @renovate in #7588
  • chore(deps): update mozilla-actions/sccache-action action to v0.0.9 by @renovate in #7592
  • fix(deps): update rust crate os_display to v0.1.4 by @renovate in #7599
  • chore(deps): update reactivecircus/android-emulator-runner action to v2.34.0 by @renovate in #7602
  • chore(deps): update rust crate blake3 to v1.8.0 by @renovate in #7621
  • chore(deps): update rust crate clap to v4.5.35 by @renovate in #7633
  • chore(deps): update rust crate blake3 to v1.8.1 by @renovate in #7639
  • chore(deps): update rust crate zip to v2.6.0 by @renovate in #7644
  • chore(deps): update rust crate ctrlc to v3.4.6 by @renovate in #7652
  • chore(deps): update rust crate smallvec to v1.15.0 by @renovate in #7657
  • chore(deps): update rust crate zip to v2.6.1 by @renovate in #7655
  • chore(deps): update vmactions/freebsd-vm action to v1.2.0 by @renovate in #7672
  • chore(deps): update rust crate crossterm to 0.29.0 by @renovate in #7667
  • chore(deps): update mozilla-actions/sccache-action action to v0.0.9 by @renovate in #7682
  • chore(deps): update codecov/codecov-action action to v5 by @renovate in #7683
  • chore(deps): update rust crate half to v2.6.0 by @renovate in #7692
  • chore(deps): update rust crate bstr to v1.12.0 by @renovate in #7701
  • chore(deps): update rust crate linux-raw-sys to v0.9.4 by @renovate in #7714
  • chore(deps): update rust crate uutils_term_grid to 0.7 by @renovate in #7720
  • chore(deps): update rust crate self_cell to v1.2.0 by @renovate in #7727
  • chore(deps): update rust crate clap to v4.5.36 by @renovate in #7731
  • fix(deps): update rust crate data-encoding to v2.9.0 by @renovate in #7735
  • fix(deps): update rust crate data-encoding-macro to v0.1.18 by @renovate in #7734
  • fix(deps): update rust crate libc to v0.2.172 by @renovate in #7759
  • fix(deps): update rust crate proc-macro2 to v1.0.95 by @renovate in #7766
  • fix(deps): update rust crate rand to v0.9.1 by @renovate in #7772
  • chore(deps): update rust crate clap to v4.5.37 by @renovate in #7783
  • chore(deps): update rust crate blake3 to v1.8.2 by @renovate in #7807
  • chore(deps): update rust crate ctor to v0.4.2 by @renovate in #7817
  • chore(deps): update rust crate clap_complete to v4.5.48 by @renovate in #7856
  • chore(deps): update rust crate sha2 to v0.10.9 by @renovate in #7864
  • chore(deps): update rust crate clap_complete to v4.5.49 by @renovate in #7889
  • chore(deps): update rust crate clap_complete to v4.5.50 by @renovate in #7893
  • chore(deps): update rust crate signal-hook to v0.3.18 by @renovate in #7905
  • chore(deps): update rust crate clap to v4.5.38 by @renovate in #7911
  • chore(deps): update rust crate zip to v3 by @renovate in #7935
  • chore(deps): update rust crate zip to v4 by @renovate in #7969

New Contributors

Full Changelog: 0.0.30...0.1.0

Read Entire Article