docs/src/release-notes/0.8.0.md
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!
| 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 |
GNU Compatibility & Upstream Collaboration
nix → rustix Migration
nix crate with rustix across cat, df, wc, tty, tsort, tail, touch, date, mkdir, and uucoreuucore: uses rustix for splice(), restricted to LinuxPerformance Improvements
uucore: Share fluent resources between threads — dd perf +45%uucore: Call rt_sigaction once instead of 62 times — faster startupls: Replace recursion with iterative depth-first search; remove many unnecessary allocationssort: Performance improvements across sorting pathswc: 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_discardtee: Increased buffer size for large input; removed Box and dyn overheadnumfmt: Protect name from argv[0] — +3% perfpr: Avoid String conversion when storing lines to printtrue/false/echo: Avoid uu_app().render_version() for smaller binaryWebAssembly (WASI) Support & Online Playground
ls, head, cat, cp, mv, sort, tail, and many moreFileInformation and IO module in uucorerayon on WASIPlatform Support
stdbuf support, expanded CI coveragepathchk: Now builds for Windowswc: Cross-platform building and 32-bit supportstdbuf: Fixed Cygwin cfg block; detect unsupported target at build timeuucore(fs): Made display_permissions_unix cross-platformuucore: Support realtime signals (RTMIN/RTMAX) in signal_by_name_or_valueuucore: Permit D as decimal suffix modifier for GNU compatibilityDocumentation & Manpages
lsContributions: This release was made possible by 13 new contributors joining our community
Try it in your browser — Online Playground powered by WebAssembly Help us translate — Contribute to Rust Coreutils on Weblate or TL;DR pages Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
to_owned() calls by @cakebaker in https://github.com/uutils/coreutils/pull/11676? instead of match by @cakebaker in https://github.com/uutils/coreutils/pull/11461unprivileged property by @cakebaker in https://github.com/uutils/coreutils/pull/11283-t f to double precision by @can1357 in https://github.com/uutils/coreutils/pull/11396stdbuf on NetBSD by @0323pin in https://github.com/uutils/coreutils/pull/11428fa class from platform icons by @sylvestre in https://github.com/uutils/coreutils/pull/11641feat_os_unix on NetBSD by @0323pin in https://github.com/uutils/coreutils/pull/11470sm3 & add crates to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/115352.1.1 to 2.2.0 & fix deprecation warnings by @cakebaker in https://github.com/uutils/coreutils/pull/11590Full Changelog: https://github.com/uutils/coreutils/compare/0.7.0...0.8.0