π¦ Findutils 0.9.0 Release:
We are thrilled to announce the release of Findutils 0.9.0! This release is a major milestone: it introduces the first implementations of locate and updatedb, bringing the project much closer to a complete drop-in replacement for the GNU findutils suite. Alongside these new utilities, this version adds the interactive -ok/-okdir actions, new xargs options (-E, -l, and hyphenated -I/-E values), chained -type arguments, and many correctness fixes. We've also hardened the project with a security audit workflow, a SECURITY.md, and CodSpeed performance benchmarks for all four utilities.
This release also lands as the broader uutils effort reaches a new level of adoption: Microsoft now ships uutils-based tooling (microsoft/coreutils), a strong validation of the project's drop-in, cross-platform approach.
This release saw contributions from 11 new developers.
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.
GNU Test Suite Compatibility
Here's how version 0.9.0 compares to the previous release:
| Result | Previous (0.8.0) | Current (0.9.0) | Change | % Total Previous | % Total Current | % Change |
|---|---|---|---|---|---|---|
| Pass | 503 | 518 | +15 | 80.87% | 83.28% | +2.41% |
| Skip | 1 | 1 | 0 | 0.16% | 0.16% | 0.00% |
| Fail | 117 | 103 | -14 | 18.81% | 16.56% | -2.25% |
| Error | 1 | 0 | -1 | 0.16% | 0.00% | -0.16% |
| Total | 622 | 622 | 0 |
For more details, visit https://github.com/uutils/findutils-tracking/.
Highlights
New utilities: locate and updatedb
- Initial implementation of
locateandupdatedbby @Qelxiros in #536 locate/updatedbmade to work on Windows by @sylvestre in #704updatedb: improve perf and error messages, and a clear error when the output database can't be created by @sylvestre in #713
find
- Implement
-okand-okdirby @jmr in #650 - Match the GNU prompt format for
-ok/-okdirby @sylvestre in #699 - Implement chained
-typematcher arguments by @Crypto-Darth in #527 - Replace the
{}placeholder in the-executility name by @mvanhorn in #647 - Fix
-fstypewith stacked mounts by @tavianator in #532 - Avoid a redundant
statper-fstypeevaluation by @sylvestre - Avoid a panic on
-fprintfwith missing arguments by @sylvestre in #698 - Handle write failures when printing
--help/--versionby @Xylphy in #656 - Update the
--helptext by @jmr in #707 - Use
div_ceilfor proper blocks computation by @KartikDua1504 in #529
xargs
- Add support for
-Eby @brian-pane in #593 - Add support for
-lby @brian-pane in #601 - Ignore
-E/-ewhen a delimiter is specified by @brian-pane in #603 - Accept hyphenated
-Iand-Evalues by @kevinburke in #668
Project, CI & quality
- Add
SECURITY.mdby @xtqqczze in #663 - Add a security audit workflow by @xtqqczze in #660
- Add CodSpeed benchmarks for
findandxargsby @sylvestre in #703 - Add CodSpeed benchmarks for
updatedbandlocateby @sylvestre in #705 - Port the tests to uutests by @jmr in #645
- Enable the clippy
all/cargo/pedanticlint groups, mirroring uutils/coreutils by @sylvestre in #715 - Fix warnings from the
filter_nextlint by @cakebaker in #604 - Publish the release as a draft first, and publish the binary from
mainby @sylvestre / @oech3 in #530, #618 - Add a
release-smallprofile and rename the dist profile by @oech3 in #586 - Faster CI: use preinstalled Rust &
CARGO_INCREMENTAL=0by @oech3 in #619
Dependencies
Numerous dependency bumps via Dependabot, including clap (4.5.35 β 4.6.1), regex (1.11.1 β 1.12.3), nix (0.29.0 β 0.31.3), chrono (0.4.40 β 0.4.45), tempfile (3.19.1 β 3.27.0), ctor (0.6.3 β 1.0.7), uucore (0.0.30 β 0.9.0), uutests (0.7.0 β 0.9.0), onig (6.4.0 β 6.5.3), argmax (0.3.1 β 0.4.0), filetime, serial_test, assert_cmd, rstest, terminal_size, and several GitHub Actions. Yanked futures-util, scc, and getrandom 0.3.1 were removed.
New Contributors
- @KartikDua1504 made their first contribution in #529
- @tdulcet made their first contribution in #545
- @Qelxiros made their first contribution in #547
- @oech3 made their first contribution in #586
- @brian-pane made their first contribution in #593
- @jmr made their first contribution in #645
- @xtqqczze made their first contribution in #659
- @kevinburke made their first contribution in #668
- @vip892766gma made their first contribution in #687
- @mvanhorn made their first contribution in #647
- @Xylphy made their first contribution in #656
Full Changelog: 0.8.0...0.9.0
Install findutils 0.9.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/uutils/findutils/releases/download/0.9.0/findutils-installer.sh | shDownload findutils 0.9.0
| File | Platform | Checksum |
|---|---|---|
| findutils-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| findutils-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| findutils-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| findutils-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |