Seznam obsahuje 17 verzí programu coreutils – od 14. listopadu 2023 po aktuální verzi 0.12.0. Každá verze vede na instalátory ze serveru výrobce.
17 verzí za 3 roky · přibližně 6 ročně
| Verze | Datum | Velikost | Soubory |
|---|---|---|---|
| 0.12.0Nejnovější | 16. září 2026 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změnRust Coreutils 0.12.0 Release:
We are happy to announce the release of Rust Coreutils 0.12.0 - a release focused on compatibility fixes for our Ubuntu friends.
Ubuntu ships uutils coreutils as its default coreutils implementation, and this cycle was driven by what their users and maintainers reported: the bugs they asked us to prioritize are all fixed here, along with a long tail of smaller divergences from GNU. Few of these are glamorous, but they are exactly what breaks a script that has worked for twenty years.
Alongside that, we removed the last C dependency of expr (onig is replaced by the pure-Rust fancy-regex), continued the Windows port (nice, nohup and hostid now build there, and uucore's filesystem layer was rewritten with safe Win32 wrappers) and landed another round of security hardening on ls, sort and install.
Also, some contributions had carried comments and code over from GNU coreutils, against our own rule
that uutils is an original implementation. We reviewed the tree and rewrote what we found, in comments and in the few functions that followed the C too closely; no behaviour change. The GNU coreutils maintainers have been notified.
GNU coreutils 9.12 was released during our cycle (kudos to the team!), and some of the work went that way too. Chasing compatibility tends to turn up things worth fixing or improving on both sides.
We also made it official: a utility being significantly slower than GNU is now treated as a bug, not a wishlist item. If you hit one, please report it as a bug.
We are now at 653 passing, 21 failing, 0 errors on the GNU test suite.
GNU Test Suite Compatibility:
──────┬──────┬──────┬───────────────────────┬──────────────┬──────────────┬─────────────────────────
Result│0.11.0│0.12.0│Change 0.11.0 to 0.12.0│% Total 0.11.0│% Total 0.12.0│% Change 0.11.0 to 0.12.0
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Pass │653 │653 │0 │95.33% │94.36% │-0.97%
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Skip │10 │18 │+8 │1.46% │2.60% │+1.14%
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Fail │22 │21 │-1 │3.21% │3.03% │-0.18%
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Error │0 │0 │0 │0% │0% │0%
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Total │685 │692 │+7 (new tests) │ │ │
──────┴──────┴──────┴───────────────────────┴──────────────┴──────────────┴─────────────────────────
> Note: the suite grew by 7 tests (backport of GNU tests) and 8 more tests are skipped on our reference runner, so the raw pass count is flat while the failures went down again. Counting only the tests that actually run, we are at 653/674 (96.9%), our best ratio so far, and the second release in a row with no erroring test. We are comparing against Coreutils 9.11.
Highlights:
- Ubuntu Compatibility
- The issues Ubuntu asked us to fix first are all fixed: data loss in a parallel install -D (#12355), du on 32-bit architectures (#11848), ls ACL dereferencing (#13234), cp -R name collisions (LP#2167118) and chmod -R through symlinks (LP#2167122)
- A whole family of options now accept a hyphen-leading value, like GNU does: csplit --suffix-format, paste -d, join -t, stat --format/--printf/-c and all of numfmt's options. A - in a delimiter or a format string is data, not a flag
- rm no longer segfaults on very deeply nested directories
- sort -n applies to the key instead of the whole line, echoes a disorder line verbatim instead of reformatting it as a number, and no longer keeps every input file open while sorting
- basename trailing-separator handling for dot components, realpath exit status in quiet mode, ln keeping the destination when a forced link fails, csplit always creating the final split even when empty, fmt -x/-X, printf treating a -- past the form |
| 0.11.0 | 30. srpna 2026 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změnRust Coreutils 0.11.0 Release:
We are happy to announce the release of Rust Coreutils 0.11.0 - a release focused on error messages, performance and GNU compatibility.
The big change is a new diagnostic engine built on ariadne. When a chmod mode, a cut list, a sort key or a tr set fails to parse, we now echo the arguments back with a caret under the character at fault, like a compiler does. See our blog post for more information: https://uutils.org/blog/2026-08-error-diagnostics/
Example with cut:
or test:
PGO release builds are enabled for Linux, macOS and Windows (up to 31% faster), and a lot of per-utility optimization work landed on top of that. We also now treat a utility being significantly slower than GNU as a bug.
We continued to improve the GNU compatibility and we are now at 653 passing, 22 failing, 0 errors.
GNU Test Suite Compatibility:
──────┬──────┬──────┬───────────────────────┬──────────────┬──────────────┬─────────────────────────
Result│0.10.0│0.11.0│Change 0.10.0 to 0.11.0│% Total 0.10.0│% Total 0.11.0│% Change 0.10.0 to 0.11.0
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Pass │645 │653 │+8 │94.44% │95.33% │+0.89%
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Skip │9 │10 │+1 │1.32% │1.46% │+0.14%
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Fail │28 │22 │-6 │4.10% │3.21% │-0.89%
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Error │1 │0 │-1 │0.15% │0% │-0.15%
──────┼──────┼──────┼───────────────────────┼──────────────┼──────────────┼─────────────────────────
Total │683 │685 │+2 (new tests) │ │ │
──────┴──────┴──────┴───────────────────────┴──────────────┴──────────────┴─────────────────────────
> Note: 653 passing and 23 failing are both records for us, and this is the first release with no erroring test. Note that the suite grew by 2 tests this cycle (local backport). We also list the tests excluded from the pass/fail percentages now.
Highlights:
- Modern Error Diagnostics (new)
- A new diagnostic engine based on ariadne. When stderr is a terminal, a parse error is printed as a report: the arguments are echoed back as a source line, a caret marks the culprit and a help line explains the syntax. See the blog post for before/after examples
- Carets landed in chmod, mkdir, mkfifo, mknod, install, tr, expr, sort, numfmt, cut, env, head, tail, truncate, split, shred, stdbuf, od, seq, dd, stat, join, csplit, ls, df and du
- A caret can point inside a quoted argument and at a single character. The reports are localized (format, checksum and advice strings) and still print the usual Try '... --help' hint. A label is only added when it says something useful
- UUTILS_DIAG controls the behavior, and the caret rendering can be compiled out for size-constrained builds
- Diagnostics are written in a single stderr call, so concurrent writers cannot interleave them
- Performance
- PGO (profile-guided optimization) release builds: up to 31% faster - now enabled for the published Linux, macOS and Windows artifacts too.
- cp: opens the file only once (+32.93%) and reuses the already-open destination fd when a reflink clone falls back
- join: 1.37x faster on paired input, 2.5x faster than GNU, by skipping the locale comparison when it cannot change the result
- od --skip-bytes uses splice(2) on non-seekable input; tac uses fast_copy; dd no longer faults in the whole copy buffer before reading and page-aligns its read buffer
- Fewer allocations and syscalls in ptx (+4% via fxhash, plus fewer per-word allocations), nl (hoisted per-line prefix), tail (no double allocation per reverse chunk, no stat), expand/unexpand (no stat/is_dir), numfmt and sort
- New benchmarks for ptx, basenc and the numfmt stdin path
- A utility being significantly slower than GNU is now considered a bug - please report it as one
- GNU Co |
| 0.10.0 | 5. srpna 2026 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změnRust Coreutils 0.10.0 Release:
We are happy to announce the release of Rust Coreutils 0.10.0 - a release focused on GNU compatibility and robustness. The GNU test suite results improved sharply this cycle (645 passing, 29 failing, down from 56), we landed a second wave of security hardening (TOCTOU races, safe recursive descent, SELinux labeling at creation, backup guards), and we ran a broad anti-panic campaign across the utilities. On top of that: new features (mv --exchange, install --reflink, an OpenSSL backend for the checksum utilities), more zero-copy/read-ahead performance work, and wasm32-wasip2 support.
GNU Test Suite Compatibility:
──────┬─────┬──────┬──────────────────────┬─────────────┬──────────────┬────────────────────────
Result│0.9.0│0.10.0│Change 0.9.0 to 0.10.0│% Total 0.9.0│% Total 0.10.0│% Change 0.9.0 to 0.10.0
──────┼─────┼──────┼──────────────────────┼─────────────┼──────────────┼────────────────────────
Pass │625 │645 │+20 │90.58% │93.48% │+2.90%
──────┼─────┼──────┼──────────────────────┼─────────────┼──────────────┼────────────────────────
Skip │8 │15 │+7 │1.16% │2.17% │+1.01%
──────┼─────┼──────┼──────────────────────┼─────────────┼──────────────┼────────────────────────
Fail │56 │29 │-27 │8.12% │4.20% │-3.92%
──────┼─────┼──────┼──────────────────────┼─────────────┼──────────────┼────────────────────────
Error │1 │1 │0 │0.14% │0.14% │0%
──────┼─────┼──────┼──────────────────────┼─────────────┼──────────────┼────────────────────────
Total │690 │690 │0 │ │ │
──────┴─────┴──────┴──────────────────────┴─────────────┴──────────────┴────────────────────────
> Note: 0.9.0 bumped the GNU reference to 9.11, which added 25 new tests and temporarily pushed the failure count up. This cycle absorbed most of that debt: failures dropped from 56 to 29 and passes reached an all-time high of 645.
> As we contributed many tests to the GNU implementation, we are also the source of some of these regressions!
Highlights:
- GNU Compatibility
- 645 passing GNU tests (+20) and 27 fewer failures, the largest single-cycle drop we have had
- Dozens of behavior alignments: pr (-w/-W/-l/-e/-o, merge mode, page ranges), nproc (cgroups v2 quota, affinity mask, offline cores, OMP_* handling), date (out-of-range years, -d -, O modifier, timezone strings), numfmt, ls, du, install, od, truncate, fold, head/tail, sum, stat
- Many error messages now carry the file name and the real OS error instead of a vague or stripped message
- Security Hardening
- Continued the TOCTOU work started in 0.9.0: touch no longer uses O_TRUNC on create, mkfifo drops the path-based chmod, head checks the open fd instead of the path, split hardens the output-open path, chcon anchors recursive relabeling to the traversal dirfd
- Safe recursive descent fixes for chmod/chown (symlink cycles, --preserve-root re-checked during the descent), and cp no longer descends into a destination subdirectory that is a symlink
- SELinux labels are now applied at creation in mkdir, mkfifo and mknod instead of being applied afterwards
- mv fails closed when recreating a cross-device directory destination, compares file identity in the --backup=simple guard, and strips setuid/setgid when a cross-device copy cannot preserve ownership
- chroot chroots exactly the path --skip-chdir validated; stdbuf refuses a libstdbuf path that cannot be represented in LD_PRELOAD; install finalizes ownership before mode
- Added SECURITY.md documenting our threat model, scope and reporting process
- Robustness: Anti-Panic Campaign
- Removed panics and aborts across a long list of utilities: shuf, printf, numfmt, fmt, pr, chroot, dircolors, install, ln, touch, stat, split, expand, more, kill, cp, du, rm, runcon, sort, chown/chgrp, dirname, expr, cksum, dd, truncate, hashsum
- Recurring classes fixed: write failures on /dev/full, char-boundary panics on multibyte input, integer overflow on extreme widths/precisions/sizes, and unbounded allocations for huge arguments
- expr now uses an iterative p |
| 0.9.0 | 30. května 2026 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změnRust Coreutils 0.9.0 Release:
We are excited to announce the release of Rust Coreutils 0.9.0 - a release focused on safety and security. This cycle was shaped by a third-party security audit, driving extensive TOCTOU hardening and a sustained, project-wide effort to shrink the amount of unsafe code by removing it outright and migrating low-level syscalls from nix/libc to rustix. On top of that, we landed major zero-copy I/O performance work (splice/tee/pipe), broadened WebAssembly, Cygwin and Windows support, and continued contributing tests and bug reports upstream to GNU coreutils.
GNU Test Suite Compatibility:
──────┬─────┬─────┬─────────────────────┬─────────────┬─────────────┬───────────────────────
Result│0.8.0│0.9.0│Change 0.8.0 to 0.9.0│% Total 0.8.0│% Total 0.9.0│% Change 0.8.0 to 0.9.0
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Pass │630 │625 │-5 │94.74% │90.58% │-4.16%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Skip │14 │8 │-6 │2.11% │1.16% │-0.95%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Fail │21 │56 │+35 │3.16% │8.12% │+4.96%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Error │0 │1 │+1 │0% │0.14% │+0.14%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Total │665 │690 │+25 (new tests) │ │ │
──────┴─────┴─────┴─────────────────────┴─────────────┴─────────────┴───────────────────────
> Note: The rise in failing tests is due to the upstream GNU test suite being extended, not to regressions on our side. We updated our GNU reference from 9.10 to 9.11 (PR #11922), which added 25 new tests (665 → 690). Many of these newly-introduced tests are not yet passing, which accounts for the jump from 21 to 56 failures; no previously-passing functionality regressed, and work is ongoing to address the new tests.
Highlights:
- Security Hardening (Zellic audit)
- A third-party security audit by Zellic reviewed the codebase; the findings - widely reported as 44 CVEs (see also the Ubuntu update and the corrode write-up Bugs Rust won't catch) - were concentrated in TOCTOU races and filesystem edge cases that Rust's type system does not prevent
- It's worth noting that many of these CVEs are not memory-safety issues but differences in behavior from GNU coreutils that the audit identified; aligning our semantics with GNU resolves them
- This release closes many of them: a new TOCTOU-resistant uucore::safe_copy module; TOCTOU fixes in cp, mv, and chmod recursive traversal; rm dot/dotdot path-parsing protection; nohup.out now created with mode 0600; and chroot now resolves all ids before chrooting
- Reducing unsafe & migrating to rustix
- A sustained, project-wide push to shrink the unsafe surface: dozens of unsafe removals across utilities, tests, fuzz targets and uucore (get_groups, make_fifo, build.rs, and more)
- Migration from nix/libc to rustix across id, tr, timeout, sort, wc, tail, cp, who, factor, and core process/IO paths
- Performance: zero-copy I/O
- splice()/tee()/pipe() fast paths landed across cat, wc, head, tail, yes, cp, tee, and unexpand (e.g. unexpand +7.5%, faster cp from a pipe on Linux, tee via raw syscalls, yes using the tee syscall)
- Consolidated in a reworked uucore::pipes / buf_copy
- GNU Compatibility & Upstream Collaboration
- Reference bumped to GNU 9.11, which extended the suite with 25 new tests (the reason the failure count went up - see the note above; it is not a regression)
- We continue to contribute tests and bug reports upstream to GNU coreutils, and our compatibility work keeps surfacing edge cases on both sides
- New fixes across numfmt, date, tr, cksum, factor, head, stat, and sort
- numfmt Overhaul
- Precision handling, rejection of scientific notation, LC_NUMERIC decimal separator, zero-padding for negative numbers, IEC precision cap, large %f values, --to |
| 0.8.0 | 6. dubna 2026 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změnRust Coreutils 0.8.0 Release:
We are excited to announce the release of Rust Coreutils 0.8.0 — a major release featuring significant performance gains across core utilities, expanded WebAssembly (WASI) support with a brand-new online playground, and continued hardening against edge-case panics, /dev/full aborts and start of a large-scale migration from nix to rustix** for lower-level syscall safety!
GNU Test Suite Compatibility:
──────┬─────┬─────┬─────────────────────┬─────────────┬─────────────┬───────────────────────
Result│0.7.0│0.8.0│Change 0.7.0 to 0.8.0│% Total 0.7.0│% Total 0.8.0│% Change 0.7.0 to 0.8.0
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Pass │629 │630 │+1 │94.59% │94.74% │+0.15%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Skip │13 │14 │+1 │1.95% │2.11% │+0.16%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Fail │23 │21 │-2 │3.46% │3.16% │-0.30%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Error │0 │0 │0 │0% │0% │0%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Total │665 │665 │0 │ │ │
──────┴─────┴─────┴─────────────────────┴─────────────┴─────────────┴───────────────────────
Highlights:
- GNU Compatibility & Upstream Collaboration
- 630 passing GNU tests, with 2 fewer failures than 0.7.0
- Continued contributing tests and bug reports upstream to GNU coreutils, strengthening both projects
- Our compatibility work regularly uncovers edge cases in GNU itself, leading to fixes on both sides
- nix → rustix Migration
- Replaced nix crate with rustix across cat, df, wc, tty, tsort, tail, touch, date, mkdir, and uucore
- Reduced range of unsafe code in hostname, logname, who, and nice
- uucore: uses rustix for splice(), restricted to Linux
- Performance Improvements
- uucore: Share fluent resources between threads — dd perf +45%
- uucore: Call rt_sigaction once instead of 62 times — faster startup
- ls: Replace recursion with iterative depth-first search; remove many unnecessary allocations
- sort: Performance improvements across sorting paths
- wc: Improved -c performance with unextended pipe input (Linux)
- cat: Avoid unnecessary pipe() when stdout is already a pipe; don't lock stdout before splice()
- dd: Avoid zero-filling buffer at read_and_discard
- tee: Increased buffer size for large input; removed Box and dyn overhead
- numfmt: Protect name from argv[0] — +3% perf
- pr: Avoid String conversion when storing lines to print
- true/false/echo: Avoid uu_app().render_version() for smaller binary
- WebAssembly (WASI) Support & Online Playground
- New: Online Playground — try Rust Coreutils directly in your browser, powered by WebAssembly (blog post)
- Added WASI support for 70+ utilities including ls, head, cat, cp, mv, sort, tail, and many more
- Embedded all locales in the WASI binary
- Added WASI platform stubs for FileInformation and IO module in uucore
- Single-threaded sort path for WASI; disabled rayon on WASI
- Platform Support
- NetBSD: Multiple fixes, stdbuf support, expanded CI coverage
- pathchk: Now builds for Windows
- wc: Cross-platform building and 32-bit support
- stdbuf: Fixed Cygwin cfg block; detect unsupported target at build time
- uucore(fs): Made display_permissions_unix cross-platform
- uucore: Support realtime signals (RTMIN/RTMAX) in signal_by_name_or_value
- uucore: Permit D as decimal suffix modifier for GNU compatibility
- Documentation & Manpages
- Manpages now include TL;DR examples, links to the source code, and open bugs — see for example ls
- Manpages are available in multiple languages including French and Spanish, refreshed daily
- Added manpage linting in CI to catch formatting issues early
- TL;DR attribution and disclaimer are now translatable
- Contributions: This release was made possible by 13 new contributors joining our community
Ca |
| 0.7.0 | 9. března 2026 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změnRust Coreutils 0.7.0 Release:
We are excited to announce the release of Rust Coreutils 0.7.0 — a performance-focused release with major optimizations across dozens of utilities, continued safety improvements replacing unsafe code with safe abstractions, and a comprehensive campaign to eliminate panics on write errors. We also contributed many patches upstream to GNU coreutils, and welcomed their feedbacks and supports, strengthening both projects!
GNU Test Suite Compatibility:
──────┬─────┬─────┬─────────────────────┬─────────────┬─────────────┬───────────────────────
Result│0.6.0│0.7.0│Change 0.6.0 to 0.7.0│% Total 0.6.0│% Total 0.7.0│% Change 0.6.0 to 0.7.0
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Pass │622 │629 │+7 │96.28% │94.59% │-1.69%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Skip │7 │13 │+6 │1.08% │1.95% │+0.87%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Fail │16 │23 │+7 │2.48% │3.46% │+0.98%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Error │1 │0 │-1 │0.15% │0% │-0.15%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Total │646 │665 │+19 (new tests) │ │ │
──────┴─────┴─────┴─────────────────────┴─────────────┴─────────────┴───────────────────────
> Note: The GNU test reference was updated from 9.9 to 9.10, adding 19 new tests. While the pass percentage decreased due to these newly added tests, the absolute number of passing tests increased by 7 and errors were eliminated entirely. Work is ongoing to address the new test failures.
Highlights:
- GNU Compatibility & Upstream Contributions
- 629 passing tests (+7 from 0.6.0), with 19 new tests added from the GNU 9.10 update
- Updated GNU test reference from 9.9 to 9.10
- Contributed numerous patches upstream to GNU coreutils, benefiting both projects
- New GNU compatibility fixes across date, fmt, kill, ptx, numfmt, cksum, and more
- Took over maintenance of num-prime, the primality testing library used by factor
- Performance Overhaul
- Faster hash maps: rustc-hash in ls, du, tsort, shuf, mv; foldhash in sort
- unexpand/expand: ASCII fast-path, buffered reads — 14%+ gain in unexpand
- shuf, split, sort, du: Reduced malloc allocations (+3–6% in du, +4% in shuf)
- nl: Optimized with itoa and direct writing
- true/false: Removed clap dependency, smaller binary, faster startup
- uucore: Disabled signal setup in simple utilities for binary size and startup speed
- Robustness: Eliminated /dev/full Panics
- Fixed panics when stderr is /dev/full across 20+ utilities (echo, date, sort, expr, hostname, id, comm, pr, dircolors, and more)
- Generic fix ensuring unrecognized options with 2>/dev/full do not abort
- Safety & Code Quality
- Replaced unsafe libc calls with safe nix crate wrappers in uucore (umask, mkdirat, and more) and mknod
- Eliminated TOCTOU races in ln, tac, and install -D
- rm: --preserve-root now works correctly on symlinks
- MSRV updated to 1.88
- Notable Bug Fixes
- date: Extensive fixes — -u/-s/-d flags, timezone abbreviation lookup and DST, RFC-822 format, %+/%_ modifiers, --debug, locale date_fmt
- cp: Readonly directories, -a/-z flags, special files, non-UTF-8 directory names
- mv: Preserve symlinks during cross-device moves, handle FIFOs in directories
- ls: Hyperlink OSC 8 format, dired reports, fd leak on deep recursion, invalid UTF-8 hidden files
- sort: Collator panic in worker threads, scientific notation parsing
- paste: Multi-byte delimiters, GNU escape sequences, bounded buffering
- printf: %q shell quoting with control chars and quotes
- ptx: -t/--typeset-mode, multibyte Unicode panic, GNU default behavior
- numfmt: --debug flag, empty delimiter, null byte handling, error message formatting
- cksum: SHAKE algorithms, --binary/--text/--tag errors
- cut, tac, tail, tr, uniq, od, chroot, stat, mktemp, pr, read |
| 0.6.0 | 2. února 2026 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změnRust Coreutils 0.6.0 Release:
We are happy to announce the release of Rust Coreutils 0.6.0 — a major milestone achieving 96% GNU compatibility with significant safety improvements, enhanced locale support, and extensive bug fixes!
Highlights:
- Major GNU Compatibility Leap
- 622 passing tests (+56 from 0.5.0), achieving 96.28% compatibility
- Reduced failures from 55 to just 16 (-39) and skipped tests from 23 to 7 (-16)
- Extensive test suite improvements across sort, ls, date, cksum, tail, and many more
- Safety & Code Quality
- Removed unsafe code from date, sort, locale.rs, and other utilities
- Replaced raw libc calls with safe nix crate equivalents throughout
- Enhanced error handling to avoid panics on /dev/full writes across many utilities
- Locale & Internationalization
- Added ICU support for locale-aware day/month names in date
- Implemented locale-aware hour formatting and calendar support
- Added locale-aware numeric sorting with thousand separator support in sort
- Locale-aware collation support in join
- Performance Improvements
- base32/base64/basenc: Optimized with reduced memset operations
- shuf: Optimized numeric output and added --random-seed option
- date: Wrapped stdout in BufWriter for batch processing
- uniq: Optimized memory usage for ignore-case comparison
- tsort: Avoid reading entire input into memory, intern strings
- df: Performance improvements with better filesystem handling
- Platform Support Expansion
- Expanded safe directory traversal to all Unix platforms
- Enhanced Cygwin support across multiple utilities
- Added SMACK security module support for ls, id, mkdir, mkfifo, mknod
- Added RISC-V 64-bit musl target to CI
- Notable Utility Improvements
- cksum/hashsum: Merged common logic, removed deprecated hashsum binary
- tail: Added --debug flag, fixed -F symlink tracking, fixed --pid with FIFO
- timeout: Added comprehensive signal handling and --verbose improvements
- sort: Legacy +POS/-POS handling, locale-aware collation, debug key annotations
- pr: Multiple fixes for headers, form feeds, and pagination options
- chmod: Fixed recursive handling and --preserve-root option
- rm: Fixed error reporting and symlink handling
- Contributions: This release was made possible by 41 new contributors joining our community
GNU Test Suite Compatibility:
──────┬─────┬─────┬─────────────────────┬─────────────┬─────────────┬───────────────────────
Result│0.5.0│0.6.0│Change 0.5.0 to 0.6.0│% Total 0.5.0│% Total 0.6.0│% Change 0.5.0 to 0.6.0
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Pass │566 │622 │+56 │87.75% │96.28% │+8.53%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Skip │23 │7 │-16 │3.57% │1.08% │-2.49%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Fail │55 │16 │-39 │8.53% │2.48% │-6.05%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Error │1 │1 │0 │0.16% │0.15% │~0%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Total │645 │646 │+1 (new test) │ │ │
──────┴─────┴─────┴─────────────────────┴─────────────┴─────────────┴───────────────────────
GNU testsuite evolution
Call to Action:
Help us translate - Contribute translations at Weblate
Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
What's Changed
arch
- Avoid >/dev/full panic by @oech3 in #10516
base64
- base(nc|32|64): Optimize performances reduction memset by @mattsu2020 in #9632
- Improve read error message by @dezgeg in #10512
basename
- basename . >/dev/full panics by @oech3 in #10553
cat
- do not connect to unix domain socket and instead return an error by @asder8215 in #9755
- fix write error handling to propagate errors instead of panicking by @rynewang in #10038
- tests(cat,stdbuf): Add broken-pipe robustness tests (#4627) by @naoNao89 in #8798
chgrp
- correct exit code by @cerdelen in # |
| 0.5.0 | 13. prosince 2025 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změn📦 Rust Coreutils 0.5.0 Release:
We are excited to announce the release of Rust Coreutils 0.5.0 — a significant milestone featuring comprehensive platform improvements, and robust testing infrastructure with continued progress toward full GNU compatibility!
Highlights:
- Improved GNU Compatibility
- 566 passing tests (+22 from 0.4.0), achieving 87.75% compatibility
- Reduced failures from 56 to 55 (-1) and skipped tests from 33 to 23 (-10)
- Updated GNU reference from 9.8 to 9.9, adding 11 new tests
- Major improvements to fold, cksum, install, and numfmt
- Unicode & Text Processing Enhancements
- fold: Added combining character support for proper Unicode text wrapping
- ptx: Implemented GNU mode with dumb terminal format
- Enhanced text processing across multiple utilities
- Security & Performance Improvements
- cksum: Merged with hashsum for unified checksum functionality
- install: Enhanced mode parsing with comma-separated support and umask handling
- seq: Improved large integer handling with dedicated benchmarks
- Various memory and performance optimizations across utilities
- Platform Support Expansion
- Added OpenBSD to CI pipeline with comprehensive testing
- Re-enabled Redox OS support in CI
- Enhanced Cygwin support in uucore
- Improved build processes across platforms
- Developer Experience Improvements
- New TTY helper for enhanced testing capabilities
- Comprehensive benchmarking additions for multiple utilities
- Reduced dependency bloat through feature splitting
- Enhanced hardware detection module
- Contributions: This release was made possible by 6 new contributors joining our community
GNU Test Suite Compatibility:
──────┬─────┬─────┬─────────────────────┬─────────────┬─────────────┬───────────────────────
Result│0.4.0│0.5.0│Change 0.4.0 to 0.5.0│% Total 0.4.0│% Total 0.5.0│% Change 0.4.0 to 0.5.0
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Pass │544 │566 │+22 │85.80% │87.75% │+1.95%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Skip │33 │23 │-10 │5.21% │3.57% │-1.64%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Fail │56 │55 │-1 │8.83% │8.53% │-0.30%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Error │1 │1 │0 │0.16% │0.16% │0%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Total │634 │645 │+11 (new tests) │ │ │
──────┴─────┴─────┴─────────────────────┴─────────────┴─────────────┴───────────────────────
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
- basenc: Fix basenc.pl GNU-compat tests pass by @karanabe in #9203
- fix(Basenc):fix GNU coreutils test bounded-memory.sh by @mattsu2020 in #9536
- base32, base64, baseenc:Simplifying the base encoding uu_app and adding basic buffer tests by @ChrisDryden in #9409
chmod
- chmod:fix safe traversal/access by @mattsu2020 in #9554
cksum
- cksum/hashsum: merge digest computation & various improvements by @RenjiSann in #9135
- cksum: Fix GNU test cksum-base64-untagged by @RenjiSann in #9344
- Add --debug flag to cksum by @naoNao89 in #9088
- cksum: Fix GNU test cksum-c.sh after bump to 9.9 by @RenjiSann in #9511
- cksum: small improvements, l10n by @RenjiSann in #9532
- Fix hardware capabilities detection; cksum --debug by @RenjiSann in #9603
cp
- cp: allow directory merging when destination was just created by @vikram-kangotra in #9325
- cp: Adding test to cover no dereference when copying symlinks by @ChrisDryden in #9623
- cp: Enabling cp force flag to run on windows by @ChrisDryden in #9624
- Add comprehensive readonly file regression tests for cp by @naoNao89 in #9045
du
- du: Alias -A --apparent-size by @oech3 in #9555
- du: ha |
| 0.4.0 | 9. listopadu 2025 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změn📦 Rust Coreutils 0.4.0 Release:
We are pleased to announce the release of Rust Coreutils 0.4.0 — continuing our journey toward full GNU compatibility with improved test coverage, enhanced functionality, and robust implementations!
Highlights:
- Enhanced GNU Compatibility
- 544 passing tests (+12 from 0.3.0), achieving 85.80% compatibility
- Reduced failures from 68 to 56 (-12)
- Better compatibility with GNU date timezone handling
- Algorithm & Performance Improvements
- factor: Integrated num_prime crate for faster u64/u128 factorization
- tsort: Fixed stack overflow issues with iterative DFS implementation
- cksum: Added comprehensive performance benchmarks
- mkdir: Fixed stack overflow with deeply nested directories
- Platform Support Enhancements
- OpenBSD support for stdbuf and uptime
- FreeBSD build and test improvements
- Better cross-platform compatibility
- hashsum Reorganization
- Removed non-GNU binaries to fix interface divergence
- Merged functionality into cksum for better GNU compatibility
- Marked hashsum as deprecated in favor of cksum
- Contributions: This release was made possible by the dedication of 17 contributors, including 4 newcomers.
GNU Test Suite Compatibility:
──────┬─────┬─────┬─────────────────────┬─────────────┬─────────────┬───────────────────────
Result│0.3.0│0.4.0│Change 0.3.0 to 0.4.0│% Total 0.3.0│% Total 0.4.0│% Change 0.3.0 to 0.4.0
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Pass │532 │544 │+12 │83.91% │85.80% │+1.89%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Skip │33 │33 │0 │5.20% │5.20% │+0.01%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Fail │68 │56 │-12 │10.73% │8.83% │-1.90%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Error │1 │1 │0 │0.16% │0.16% │0%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Total │634 │634 │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
base64
- Align base64 with GNU base64.pl tests by @karanabe in #9194
cat
- Fix EINTR handling in cat by @naoNao89 in #8946
- fix(cat): refine unsafe overwrite detection for appending files by @mattsu2020 in #9122
chown
- Fix chown tests for FreeBSD and macOS by @akretz in #9058
cksum
- Refactor cksum for incoming merge with hashsum, Fix behavior for --text and --untagged by @RenjiSann in #9024
- Fix "cksum: --length 0 shouldn't fail for algorithms that don't support --length" by @RenjiSann in #9032
- Add support for sha2, sha3 by @RenjiSann in #9035
- Fix GNU cksum-c.sh and cksum-sha3.sh by @RenjiSann in #9063
- add cksum performance benchmarks by @naoNao89 in #9075
- fix(cksum): correct CRC32B implementation to match GNU cksum by @naoNao89 in #9026
comm
- Fix EINTR handling in comm by @naoNao89 in #8946
- hold the stdin lock for the whole duration of the program by @andreacorbellini in #9085
date
- fix(date): support timezone abbreviations in date --set by @naoNao89 in #8944
- date, touch: fix parse_datetime 0.13.0 compatibility by @naoNao89 in #8843
- improve compat with GNU by @sylvestre in #9022
- remove chrono by @cakebaker in #9048
- add --uct alias and allow multiple option aliases together by @sylvestre in #9181
dd
- fix(dd): handle O_DIRECT partial block writes by @naoNao89 in #9016
du
- fix dead code warnings in test on Android by @cakebaker in #9131
- disable some benchmarks by @sylvestre in #9167
- also disable du_human_balanced_tree as benchmark by @sylvestre in #9198
factor
- base benchmarking for single/multiple u64, u128, and >u128 by @asder8215 in #9182
- use num_prime crate |
| 0.3.0 | 24. října 2025 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změn📦 Rust Coreutils 0.3.0 Release:
We are happy to announce the release of Rust Coreutils 0.3.0 — our latest milestone bringing significant performance improvements, enhanced compatibility, and robust testing infrastructure!
Highlights:
- Performance Improvements
Compared to GNU:
- base64 is 1.20x faster
- expand is 1.80x faster
- unexpand is 1.50x faster
- nl is 1.57x faster
- sort is 3.72x faster for regular sorting and 1.46x faster for numeric sorting
- fold is 1.19x faster through optimization
- uniq -c: 1.13x faster
- Comprehensive Benchmarking Infrastructure
- Integrated CodSpeed for continuous performance monitoring
- Added benchmarks for 15+ utilities including sort, ls, uniq, du, base64, and more
- Performance regression detection in CI
- Safe Directory Traversal
- Implemented secure traversal using openat/unlinkat for rm, du, chmod, and chgrp
- Enhanced security through the nix crate instead of unsafe libc calls
- Enhanced GNU Compatibility
- 532 passing tests (83.91% compatibility) with comprehensive test suite expansion
- Improved error handling and behavior matching across utilities
- Better Unicode and non-UTF8 path support
- Developer Experience Improvements
- Moved documentation and completion generation out of binaries for faster builds
- Enhanced CI with parallel benchmark compilation
- Improved Makefile support for various build configurations
- Contributions: This release was made possible by the dedication of 36 contributors, including 25 newcomers.
GNU Test Suite Compatibility:
Note: Test result changes are primarily due to upgrading our reference from GNU coreutils 9.7 to 9.8, which introduced 16 new tests and updated existing test expectations.
──────┬─────┬─────┬─────────────────────┬─────────────┬─────────────┬───────────────────────
Result│0.2.0│0.3.0│Change 0.2.0 to 0.3.0│% Total 0.2.0│% Total 0.3.0│% Change 0.2.0 to 0.3.0
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Pass │538 │532 │-6 │87.06% │83.91% │-3.15%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Skip │27 │33 │+6 │4.37% │5.20% │+0.83%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Fail │52 │68 │+16 │8.42% │10.73% │+2.31%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Error │1 │1 │0 │0.16% │0.16% │0%
──────┼─────┼─────┼─────────────────────┼─────────────┼─────────────┼───────────────────────
Total │618 │634 │+16 (new tests) │ │ │
──────┴─────┴─────┴─────────────────────┴─────────────┴─────────────┴───────────────────────
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
base64
- Input reuse on base64 by @ThePseudo in #8587
- Add benchmark for base64 by @ThePseudo in #8768
basenc
- basenc: implement --base58 encoding option by @AnarchistHoneybun in #8751
- base58: it wasn't working properly with long input by @sylvestre in #8818
chgrp
- safe traversal: adjust chmod & chgrp to use it by @sylvestre in #8632
chmod
- safe traversal: adjust chmod & chgrp to use it by @sylvestre in #8632
cksum
- cksum: improve performance (Closes: #8573) by @RenjiSann in #8643
cp
- cp: fix Ioctl casting for ppc64 (Closes: #8161) by @maxfilov in #8637
- Replace casting to Ioctl with a const from libc by @maxfilov in #8641
- cp: fix recursive cp fails on files with trailing backslashes by @Anonymous-AAA in #8747
- feat(cp): optimize directory copy by caching file checks and refactoring calls by @mattsu2020 in #8805
- cp: fix crash on -T/--no-preserve-target by @Alonely0 in #8864
- cp: show relative path of source file with -vr by @Ada-Armstrong in #8887
- cp: display symlink creation with --verbose by @Ada-Armstrong in #8899
- docs: add benchmarking guidelines for cp by @mattsu2020 in #8807
c |
| 0.2.2 | 9. září 2025 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změnRust Coreutils 0.2.2 Release:
This is a patch release focused on critical infrastructure fixes to ensure reliable distribution and deployment across different platforms.
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
- nl: allow non-UTF8 section delimiter by @cakebaker in #8575
stty
- Avoid panic in stty by @julian-klode in #8559
uucore
- uucore/build.rs: rename function by @cakebaker in #8584
Distribution & Build
- manage the locales when the program is coming from crates.io by @sylvestre in #8571
- link musl libc statically by @Ecordonnier in #8585
- Prepare version 0.2.2 by @sylvestre in #8588
Documentation
- release notes: store a copy in-tree too by @sylvestre in #8564
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
- @Vesal-J made their first contribution in #8565
Full Changelog: 0.2.0...0.2.2 |
| 0.2.0 | 6. září 2025 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změn📦 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.
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
- allow non-UTF8 filenames by @cakebaker in #8558
basename
- Simply logic, do not trim path separators / by @drinkcat in #8372
- handle a corner case with /. - Closes #8373 by @sylvestre in #8374
- Handle non-unicode parameters by @drinkcat in #8375
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
- fix recursive symlink handling for -H/-L/-P flags (Closes: #8422) by @sylvestre in #8450
- remove Windows function & unnecessary cfgs by @cakebaker in #8458
- make a test environment-agnostic by @sylvestre in #8525
chown
- fix --reference file syntax by @Anonymous-AAA in #8492
chroot
- remove unwrap calls by @jovielarue in #7890
cksum
- remove duplicate unit test by @cakebaker in #8151
- Fix file quoting on stderr by @RenjiSann in #8272
- two small refactorings by @cakebaker in #8527
cp
- migrate from quick-error to thiserror by @vikram-kangotra in #7989
- clean existing file when copy from stream by @Luv-Ray in #8149
- let clap render help & version by @cakebaker in #8199
- Fix --no-dereference --parents with symlink source by @julian-klode in #8331
- Try to change gid only if changing uid+gid fails by @drinkcat in #8385
- Properly |
| 0.1.0 | 24. května 2025 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změn📦 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
- base32/base64/basenc: add -D flag by @TerakomariGandesblood in #7479
cat
- cat: Improve performance of formatting. by @karlmcdowall in #7519
- cat: bugfix when running with -T option by @karlmcdowall in #7636
- cat: Formatting performance improvement by @karlmcdowall in #7642
- cat: Performance improvement when printing line numbers by @karlmcdowall in #7645
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
- cksum: take out regex pattern matching by @GTimothy in #7580
cp
- cp: Use FICLONE ioctl constant from linux-raw-sys by @dezgeg in #7439
- cp: fix update prompting by @hz2 in #7668
- cp -P hardlink-to-symlink hardlink-to-same-symlink should no-op by @dan-hipschman in #7753
- cp: refuse to copy symlink over itself by @dan-hipschman in #7729
- cp: use authors.workspace in Cargo.toml by @cakebaker in #7882
- cp: improve the selinux support by @sylvestre in #7878
- cp: context Disable a check in tests/cp/no-ctx.sh by @sylvestre in #7938
- cp: copy dir if source path ends with dot by @cakebaker in #7874
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
- date: allow negative date offsets by @lewisboon in #7548
- date: add tests for relative weekdays by @dan-hipschman in #7843
- date: move file header to top & merge some imports by @cakebaker in #7857
- refactor(tests): use absolute difference of dates to check if they are within a window by @lavafroth in #7755
dd
- feat: optimize dd parsing, bugfix by @nyurik in #7704
df
- refactor: Add thiserror to df by @kiran-4444 in #7545
- df: migrate OptionsError to thiserror by @lewisboon in #7673
- fix: df: filter filesystem types after mount point resolution by @SergeiPatiakin in #7452
du
- du: don't panic on block-size 0 by @BenWiederhake in #7742
- du: fix "function never used" warning in test by @cakebaker in #7943
echo
- echo: fixed double hyphen as argument by @cerdelen in #7581
- Remove clap for echo by @cerdelen in #7603
env
- env: ignore flags after the command or |
| 0.0.30 | 8. března 2025 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změn📦 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
- error when output is input and appending by @jfinkels in #7260
chgrp
- add option --from by @sylvestre in #7129
- gnu/tests/chgrp/from.sh is now fixed by @sylvestre in #7205
cksum
- Fix #6375 and un-ignore now passing tests by @RenjiSann in #7261
- Update error and flags handling to improver GNU's match by @RenjiSann in #7192
- add CRC32B algorithm added in GNU 9.6 by @RenjiSann in #7169
- replace is_some_and with is_none_or by @cakebaker in #7403
cp
- disabled verbose output if file has been skipped by @BigPapa314 in #7347
- fix verbose output order after prompt by @aimerlief in #7287
csplit
- don't panic on missing suppressed file by @jfinkels in #7292
echo
- use uucore::format::parse_escape_only() by @jfinkels in #7316
expr
- Add tests by @RenjiSann in #7356
- Evaluate parenthesis content before checking for closing parenthesis by @RenjiSann in #7332
- Fix assorted test errors in tests/expr/expr.pl by @sargas in #6134
- Get rid of clap for performance reasons by @RenjiSann in #7352
install
- Document install-C test failure by @sylvestre in #7223
head
- ensure stdin input stream is correct on exit by @karlmcdowall in #7253
- Fix bug printing large non-seekable files by @karlmcdowall in #7294
- fix bug reading back through files by @karlmcdowall in #7248
- improve error mgmt. by @sylvestre in #7408
- Remove a head test from the list of failure by @sylvestre in #7414
kill
- don't allow lowercase signal names with '-' by @cakebaker in #7206
- fix the fail to use only least significant bits to identify signal with -l by @Felle33 in #7225
- list signal 0 with -l and -t by @cakebaker in #7193
- test "-l " & adapt error messages by @cakebaker in #7213
ls
- display %Z alphabetic time zone abbreviation by @jfinkels in #7154
- Refactoring ls and date by @Felle33 in #7194
- gnu patches: adapt tests_ls_no_cap.patch to GNU coreutils 9.6 by @cakebaker i |
| 0.0.28 | 16. listopadu 2024 | — | 64bit ZIPARM64 ZIP32bit ZIP Seznam změn📦 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 evolutionCall 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
- Perform faster, streaming encoding by @andrewliebenow in #6719
cat
- Fix issue #6248 by @OshinoShinobu-Chan in #6763
- Use write_end_of_line() to avoid duplicate code by @cakebaker in #6764
- Fix issue #5186 by adding explicit flush by @gim913 in #5256
cksum / hashsum
- Add support for --check with base64 and other improvements by @sylvestre in #6452
- Accept non-UTF-8 filenames by @BenWiederhake in #6575
- Support commented lines in checksum files by @RenjiSann in #6782
- Fix error handling by @Luv-Ray in #6801
- Implement -z / --zero by @RenjiSann in #6815
- Read the next file when the first is missing or invalid by @sylvestre in #6524
- Support non-UTF-8 input in checksum files by @RenjiSann in #6793
cp
- Fix preserved hardlinks not being reported in --verbose mode by @djedi23 in #6496
- Improve GNU test case compatibility for part-symlink by @matrixhead in #6588
- Treat an empty file name as a non-existing file by @samueltardieu in #6683
- Show mode if the target does not have S_IWUSR by @andrewliebenow in #6700
- Fix possible OOM and partial writes with large files by @neyo8826 in #6694
- Fix symlink-overwrite error priority by @Luv-Ray in #6586
- Normalize path when checking for duplicate source by @matrixhead in #6825
- Add argument count validation for cp by @LoricAndre in #6690
date
- Fix timezone error when setting UTC time by @CausingBrick in #6503
- Add test for date by @Its-Just-Nans in #6526
- Add tests for issue #6392 by @RenjiSann in #6471
dd
- Fix issue #5905 (different error message from GNU) by @just-an-engineer in #6622
dircolors
- Optimize integer and string operations required by clippy nightly by @BenWiederhake in #6636
echo
- Handle multibyte escape sequences by @andrewliebenow in #6803
- Remove double negation by @cakebaker in #6810
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
- Add support for multibyte separators by @jtracey in #6736
- Avoid extra allocations when using -i by @jtracey in #6774
ls
- Adjust code for --dired after GNU v9.5 changes by @sylvestre in #6144
- Fix GNU test case color-norm by @matrixhead in #6481
- Fix error in subdirectory output by @CausingBrick in #6521
- Fix dired option (-D) not outputting datetime and parent directory byte offsets |
| 0.0.27 | 24. června 2024 | — | 64bit ZIP32bit ZIP |
| 0.0.23 | 14. listopadu 2023 | — | 64bit ZIP32bit ZIP |