docs/src/release-notes/0.3.0.md
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!
Performance Improvements Compared to GNU:
base64 is 1.20x fasterexpand is 1.80x fasterunexpand is 1.50x fasternl is 1.57x fastersort is 3.72x faster for regular sorting and 1.46x faster for numeric sortingfold is 1.19x faster through optimizationuniq -c: 1.13x fasterComprehensive Benchmarking Infrastructure
sort, ls, uniq, du, base64, and moreSafe Directory Traversal
openat/unlinkat for rm, du, chmod, and chgrpnix crate instead of unsafe libc callsEnhanced GNU Compatibility
Developer Experience Improvements
Contributions: This release was made possible by the dedication of 36 contributors, including 25 newcomers.
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) |
π 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
--resolution flag by @Banzobotic in https://github.com/uutils/coreutils/pull/8686/. by @naoNao89 in https://github.com/uutils/coreutils/pull/8911--separator & --terminator by @cakebaker in https://github.com/uutils/coreutils/pull/8681unexpected_cfgs to workspace lints & fix warnings in seq by @cakebaker in https://github.com/uutils/coreutils/pull/8859sort-files0-from by @cakebaker in https://github.com/uutils/coreutils/pull/8748new_ucmd!() by @cakebaker in https://github.com/uutils/coreutils/pull/8602du & touch to PROGS by @cakebaker in https://github.com/uutils/coreutils/pull/8926wc-files0-from by @cakebaker in https://github.com/uutils/coreutils/pull/8749ChecksumError variants by @cakebaker in https://github.com/uutils/coreutils/pull/8636create_sha3() by @cakebaker in https://github.com/uutils/coreutils/pull/8645with_scale(9) for huge inputs by @loskutov in https://github.com/uutils/coreutils/pull/8740cgroup2fs by @cakebaker in https://github.com/uutils/coreutils/pull/8778[lints] workspace = true to uucore/Cargo.toml by @cakebaker in https://github.com/uutils/coreutils/pull/8771semicolon_if_nothing_returned by @cakebaker in https://github.com/uutils/coreutils/pull/8775use_self lint to workspace lints by @cakebaker in https://github.com/uutils/coreutils/pull/8839manual_let_else lint by @cakebaker in https://github.com/uutils/coreutils/pull/8894lints.clippy section by @cakebaker in https://github.com/uutils/coreutils/pull/8897nix from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/8967apt-get update to code-quality workflow by @cakebaker in https://github.com/uutils/coreutils/pull/8865-h & -V to extensions by @cakebaker in https://github.com/uutils/coreutils/pull/8888rustix from 1.0.7 to 1.1.2 by @cakebaker in https://github.com/uutils/coreutils/pull/8613fts-sys and selinux-sys by @cakebaker in https://github.com/uutils/coreutils/pull/8612half & zerocopy by @cakebaker in https://github.com/uutils/coreutils/pull/8866nu-ansi-term from 0.50.1 to 0.50.3 by @cakebaker in https://github.com/uutils/coreutils/pull/8885half & zerocopy by @cakebaker in https://github.com/uutils/coreutils/pull/8884Full Changelog: https://github.com/uutils/coreutils/compare/0.2.2...0.3.0