{"id":21659820,"url":"https://github.com/RReverser/coreutils","last_synced_at":"2025-07-17T22:33:11.870Z","repository":{"id":41802486,"uuid":"277026849","full_name":"RReverser/coreutils","owner":"RReverser","description":"Cross-platform Rust rewrite of the GNU coreutils","archived":false,"fork":true,"pushed_at":"2023-01-20T08:26:34.000Z","size":6499,"stargazers_count":17,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"wasi","last_synced_at":"2024-11-25T09:45:04.578Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"uutils/coreutils","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RReverser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-04T02:52:47.000Z","updated_at":"2024-11-18T19:52:57.000Z","dependencies_parsed_at":"2023-02-12T00:46:11.275Z","dependency_job_id":null,"html_url":"https://github.com/RReverser/coreutils","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/RReverser/coreutils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RReverser%2Fcoreutils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RReverser%2Fcoreutils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RReverser%2Fcoreutils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RReverser%2Fcoreutils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RReverser","download_url":"https://codeload.github.com/RReverser/coreutils/tar.gz/refs/heads/wasi","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RReverser%2Fcoreutils/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265672343,"owners_count":23808844,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T09:31:39.368Z","updated_at":"2025-07-17T22:33:11.107Z","avatar_url":"https://github.com/RReverser.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"uutils coreutils\n================\n\n[![Discord](https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord\u0026longCache=true\u0026style=flat)](https://discord.gg/wQVJbvJ)\n[![License](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/uutils/coreutils/blob/master/LICENSE)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fuutils%2Fcoreutils.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fuutils%2Fcoreutils?ref=badge_shield)\n[![LOC](https://tokei.rs/b1/github/uutils/coreutils?category=code)](https://github.com/Aaronepower/tokei)\n[![dependency status](https://deps.rs/repo/github/uutils/coreutils/status.svg)](https://deps.rs/repo/github/uutils/coreutils)\n\n[![Build Status](https://api.travis-ci.org/uutils/coreutils.svg?branch=master)](https://travis-ci.org/uutils/coreutils)\n[![Build Status (Windows)](https://ci.appveyor.com/api/projects/status/787ltcxgy86r20le?svg=true)](https://ci.appveyor.com/project/Arcterus/coreutils)\n[![Build Status (FreeBSD)](https://api.cirrus-ci.com/github/uutils/coreutils.svg)](https://cirrus-ci.com/github/uutils/coreutils/master)\n[![codecov](https://codecov.io/gh/uutils/coreutils/branch/master/graph/badge.svg)](https://codecov.io/gh/uutils/coreutils)\n\n-----------------------------------------------\n\nuutils is an attempt at writing universal (as in cross-platform) CLI\nutilities in [Rust](http://www.rust-lang.org). This repository is intended to\naggregate GNU coreutils rewrites.\n\nWhy?\n----\n\nMany GNU, Linux and other utilities are useful, and obviously\n[some](http://gnuwin32.sourceforge.net) [effort](http://unxutils.sourceforge.net)\nhas been spent in the past to port them to Windows. However, those projects\nare either old and abandoned, are hosted on CVS (which makes it more difficult\nfor new contributors to contribute to them), are written in platform-specific C, or\nsuffer from other issues.\n\nRust provides a good, platform-agnostic way of writing systems utilities that are easy\nto compile anywhere, and this is as good a way as any to try and learn it.\n\nRequirements\n------------\n\n* Rust (`cargo`, `rustc`)\n* GNU Make (required to build documentation)\n* [Sphinx](http://www.sphinx-doc.org/) (for documentation)\n* gzip (for installing documentation)\n\n### Rust Version ###\n\nuutils follows Rust's release channels and is tested against stable, beta and nightly.\nThe current oldest supported version of the Rust compiler is `1.32.0`.\n\nOn both Windows and Redox, only the nightly version is tested currently.\n\nBuild Instructions\n------------------\n\nThere are currently two methods to build uutils: GNU Make and Cargo.  However,\nwhile there may be two methods, both systems are required to build on Unix\n(only Cargo is required on Windows).\n\nFirst, for both methods, we need to fetch the repository:\n```bash\n$ git clone https://github.com/uutils/coreutils\n$ cd coreutils\n```\n\n### Cargo ###\n\nBuilding uutils using Cargo is easy because the process is the same as for\nevery other Rust program:\n```bash\n# to keep debug information, compile without --release\n$ cargo build --release\n```\n\nBecause the above command attempts to build utilities that only work on\nUnix-like platforms at the moment, to build on Windows, you must do the\nfollowing:\n```bash\n# to keep debug information, compile without --release\n$ cargo build --release --no-default-features --features windows\n```\n\nIf you don't want to build every utility available on your platform into the\nmulticall binary (the Busybox-esque binary), you can also specify which ones\nyou want to build manually.  For example:\n```bash\n$ cargo build --features \"base32 cat echo rm\" --no-default-features\n```\n\nIf you don't even want to build the multicall binary and would prefer to just\nbuild the utilities as individual binaries, that is possible too.  For example:\n```bash\n$ cargo build -p uu_base32 -p uu_cat -p uu_echo -p uu_rm\n```\n\n### GNU Make ###\n\nBuilding using `make` is a simple process as well.\n\nTo simply build all available utilities:\n```bash\n$ make\n```\n\nTo build all but a few of the available utilities:\n```bash\n$ make SKIP_UTILS='UTILITY_1 UTILITY_2'\n```\n\nTo build only a few of the available utilities:\n```bash\n$ make UTILS='UTILITY_1 UTILITY_2'\n```\n\nInstallation Instructions\n-------------------------\n\n### Cargo ###\n\nLikewise, installing can simply be done using:\n```bash\n$ cargo install\n```\n\nThis command will install uutils into Cargo's *bin* folder (*e.g.* `$HOME/.cargo/bin`).\n\n### GNU Make ###\n\nTo install all available utilities:\n```bash\n$ make install\n```\n\nTo install using `sudo` switch `-E` must be used:\n```bash\n$ sudo -E make install\n```\n\nTo install all but a few of the available utilities:\n```bash\n$ make SKIP_UTILS='UTILITY_1 UTILITY_2' install\n```\n\nTo install only a few of the available utilities:\n```bash\n$ make UTILS='UTILITY_1 UTILITY_2' install\n```\n\nTo install every program with a prefix (e.g. uu-echo uu-cat):\n```bash\n$ make PROG_PREFIX=PREFIX_GOES_HERE install\n```\n\nTo install the multicall binary:\n```bash\n$ make MULTICALL=y install\n```\n\nSet install parent directory (default value is /usr/local):\n```bash\n# DESTDIR is also supported\n$ make PREFIX=/my/path install\n```\n\n### NixOS ###\n\nThe [standard package set](https://nixos.org/nixpkgs/manual/) of [NixOS](https://nixos.org/)\nprovides this package out of the box since 18.03:\n\n```\nnix-env -iA nixos.uutils-coreutils\n```\n\nUninstallation Instructions\n---------------------------\n\nUninstallation differs depending on how you have installed uutils.  If you used\nCargo to install, use Cargo to uninstall.  If you used GNU Make to install, use\nMake to uninstall.\n\n### Cargo ###\n\nTo uninstall uutils:\n```bash\n$ cargo uninstall uutils\n```\n\n### GNU Make ###\n\nTo uninstall all utilities:\n```bash\n$ make uninstall\n```\n\nTo uninstall every program with a set prefix:\n```bash\n$ make PROG_PREFIX=PREFIX_GOES_HERE uninstall\n```\n\nTo uninstall the multicall binary:\n```bash\n$ make MULTICALL=y uninstall\n```\n\nTo uninstall from a custom parent directory:\n```bash\n# DESTDIR is also supported\n$ make PREFIX=/my/path uninstall\n```\n\nTest Instructions\n-----------------\n\nTesting can be done using either Cargo or `make`.\n\n### Cargo ###\n\nJust like with building, we follow the standard procedure for testing using\nCargo:\n```bash\n$ cargo test\n```\n\nBy default, `cargo test` only runs the common programs. To run also platform\nspecific tests, run:\n```bash\n$ cargo test --features unix\n```\n\nIf you would prefer to test a select few utilities:\n```bash\n$ cargo test --features \"chmod mv tail\" --no-default-features\n```\n\nTo debug:\n```bash\n$ gdb --args target/debug/coreutils ls\n(gdb) b ls.rs:79\n(gdb) run\n```\n\n### GNU Make ###\n\nTo simply test all available utilities:\n```bash\n$ make test\n```\n\nTo test all but a few of the available utilities:\n```bash\n$ make SKIP_UTILS='UTILITY_1 UTILITY_2' test\n```\n\nTo test only a few of the available utilities:\n```bash\n$ make UTILS='UTILITY_1 UTILITY_2' test\n```\n\nTo include tests for unimplemented behavior:\n```bash\n$ make UTILS='UTILITY_1 UTILITY_2' SPEC=y test\n```\n\nRun Busybox Tests\n-----------------\n\nThis testing functionality is only available on *nix operating systems and\nrequires `make`.\n\nTo run busybox's tests for all utilities for which busybox has tests\n```bash\n$ make busytest\n```\n\nTo run busybox's tests for a few of the available utilities\n```bash\n$ make UTILS='UTILITY_1 UTILITY_2' busytest\n```\n\nTo pass an argument like \"-v\" to the busybox test runtime\n```bash\n$ make UTILS='UTILITY_1 UTILITY_2' RUNTEST_ARGS='-v' busytest\n```\n\nContribute\n----------\n\nTo contribute to uutils, please see [CONTRIBUTING](CONTRIBUTING.md).\n\nUtilities\n---------\n\n| Done      | Semi-Done | To Do  |\n|-----------|-----------|--------|\n| arch      | cp        | chcon  |\n| base32    | expr      | dd     |\n| base64    | install   | numfmt |\n| basename  | ls        | pr     |\n| cat       | more      | runcon |\n| chgrp     | od (`--strings` and 128-bit data types missing) | stty |\n| chmod     | printf    |        |\n| chown     | sort      |        |\n| chroot    | split     |        |\n| cksum     | tail      |        |\n| comm      | test      |        |\n| csplit    | date      |        |\n| cut       | join      |        |\n| dircolors | df        |        |\n| dirname   |           |        |\n| du        |           |        |\n| echo      |           |        |\n| env       |           |        |\n| expand    |           |        |\n| factor    |           |        |\n| false     |           |        |\n| fmt       |           |        |\n| fold      |           |        |\n| groups    |           |        |\n| hashsum   |           |        |\n| head      |           |        |\n| hostid    |           |        |\n| hostname  |           |        |\n| id        |           |        |\n| kill      |           |        |\n| link      |           |        |\n| ln        |           |        |\n| logname   |           |        |\n| ~~md5sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/master/src/uu/hashsum/src/hashsum.rs)) | |\n| ~~sha1sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/master/src/uu/hashsum/src/hashsum.rs)) | |\n| ~~sha224sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/master/src/uu/hashsum/src/hashsum.rs)) | |\n| ~~sha256sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/master/src/uu/hashsum/src/hashsum.rs)) | |\n| ~~sha384sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/master/src/uu/hashsum/src/hashsum.rs)) | |\n| ~~sha512sum~~ (replaced by [hashsum](https://github.com/uutils/coreutils/blob/master/src/uu/hashsum/src/hashsum.rs)) | |\n| mkdir     |           |        |\n| mkfifo    |           |        |\n| mknod     |           |        |\n| mktemp    |           |        |\n| mv        |           |        |\n| nice      |           |        |\n| nl        |           |        |\n| nohup     |           |        |\n| nproc     |           |        |\n| paste     |           |        |\n| pathchk   |           |        |\n| pinky     |           |        |\n| printenv  |           |        |\n| ptx       |           |        |\n| pwd       |           |        |\n| readlink  |           |        |\n| realpath  |           |        |\n| relpath   |           |        |\n| rm        |           |        |\n| rmdir     |           |        |\n| seq       |           |        |\n| shred     |           |        |\n| shuf      |           |        |\n| sleep     |           |        |\n| stat      |           |        |\n| stdbuf    |           |        |\n| sum       |           |        |\n| sync      |           |        |\n| tac       |           |        |\n| tee       |           |        |\n| timeout   |           |        |\n| touch     |           |        |\n| tr        |           |        |\n| true      |           |        |\n| truncate  |           |        |\n| tsort     |           |        |\n| tty       |           |        |\n| uname     |           |        |\n| unexpand  |           |        |\n| uniq      |           |        |\n| unlink    |           |        |\n| uptime    |           |        |\n| users     |           |        |\n| wc        |           |        |\n| who       |           |        |\n| whoami    |           |        |\n| yes       |           |        |\n\nLicense\n-------\n\nuutils is licensed under the MIT License - see the `LICENSE` file for details\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fuutils%2Fcoreutils.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fuutils%2Fcoreutils?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRReverser%2Fcoreutils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRReverser%2Fcoreutils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRReverser%2Fcoreutils/lists"}