Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
a7c3991
feat: add 'Who uses uutils' page (Microsoft, Canonical, Yocto, Apertus)
sylvestre Jun 23, 2026
d54edbe
fix: Snap Inc. (SPECS AR glasses) not Ubuntu snaps — Snap OS on Yocto
sylvestre Jun 23, 2026
7c2c9f4
feat: add Debian, Alpine, Redox OS, VS Code Web, Buildroot to users page
sylvestre Jun 23, 2026
4dafd32
feat: add Fedora/RHEL/EPEL, NixOS, macOS, MSYS2/Scoop, Termux, Chrome…
sylvestre Jun 23, 2026
4e019c2
Redesign homepage with GNOME-terminal aesthetic
sylvestre Jun 13, 2026
460f1f5
Wrap the homepage hero in the terminal-window chrome
sylvestre Jun 13, 2026
01f774d
Frame the playground in the terminal-window chrome
sylvestre Jun 13, 2026
41cf530
Group Reviews and GSOC under a Contributing nav dropdown
sylvestre Jun 13, 2026
cf9f772
Link the coreutils contributing and development guides in the nav
sylvestre Jun 13, 2026
4e29ef9
Refresh the GSOC page and project detail pages
sylvestre Jun 13, 2026
7153499
Add good first issue links to the Contributing nav and homepage
sylvestre Jun 13, 2026
64dd57d
Point global good-first-issue links at an org-wide search
sylvestre Jun 14, 2026
8484d4b
Rename shadow-rs project to shadow (repo was renamed)
sylvestre Jun 14, 2026
6ce85da
Sort the good-first-issue search by newest first
sylvestre Jun 14, 2026
6a54d72
Mark sed as alpha
sylvestre Jun 23, 2026
2611324
Add a Who-we-are team page
sylvestre Jun 23, 2026
76c1072
Serve the site from uutils.org over HTTPS
sylvestre Jun 23, 2026
2629b69
a11y: focus states, keyboard dropdown open-state, comment cleanup
sylvestre Jun 25, 2026
9bdd449
Group Twitter and Mastodon into a Social menu dropdown
sylvestre Jun 27, 2026
735da08
refresh the user list page
sylvestre Jun 27, 2026
b7ba993
use the domain name
sylvestre Jun 27, 2026
849c7ca
playground: add a Copy share link button for the last command
sylvestre Jun 27, 2026
d9730b8
playground: move inline page JS into static/js/playground.js
sylvestre Jun 27, 2026
bf50e8b
playground: add example-click commands to the input history
sylvestre Jun 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ This repository generates the user and dev documentations of https://github.com/
## User documentation

It is available on:
https://uutils.github.io/coreutils/docs/
https://uutils.org/coreutils/docs/

Can be generated with:
```bash
Expand All @@ -17,23 +17,24 @@ mdbook build
## Playground

An in-browser playground runs the uutils coreutils WASM build directly in your browser:
https://uutils.github.io/playground/
https://uutils.org/playground/

See also how it works: https://uutils.github.io/playground-how-it-works/
See also how it works: https://uutils.org/playground-how-it-works/

## Developer documentation:

It is available on:
https://uutils.github.io/dev/coreutils/
https://uutils.org/dev/coreutils/

Can be generated with:
```bash
cargo doc --no-deps --all-features --workspace
```

The pages are committed daily into the gh-pages branch.
The website CI builds this on each `main`/scheduled run and publishes it
under `/dev/coreutils/` (and `/dev/findutils/`) as part of the deploy.

## Build timing

Generated by cargo, the build timings can be seen on:
https://uutils.github.io/cargo-timings/cargo-timing.html
https://uutils.org/cargo-timings/cargo-timing.html
2 changes: 1 addition & 1 deletion config.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# The URL the site will be built for
base_url = "https://uutils.github.io"
base_url = "https://uutils.org"

title = "uutils"

Expand Down
135 changes: 55 additions & 80 deletions content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,25 @@ title = "Home"
template = "index.html"
+++

<div class="hero">
<picture>
<source srcset="logo-dark.svg" media="(prefers-color-scheme: dark)">
<img src="logo.svg" alt="uutils logo">
</picture>
<div>uutils</div>
<div class="term term-hero">
<div class="term-bar">
<span class="t">uutils --about</span>
<span class="win-btn" title="Minimize"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"><path d="M4 11h8"/></svg></span>
<span class="win-btn" title="Maximize"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"><rect x="4.5" y="4.5" width="7" height="7" rx="1"/></svg></span>
<span class="win-btn close" title="Close"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"><path d="M4.5 4.5l7 7M11.5 4.5l-7 7"/></svg></span>
</div>
<div class="term-body">
<div class="hero">
<img src="logo-dark.svg" alt="uutils logo">
<div class="hero-prompt"><span class="pr">user@machine</span>:~$ uutils --about</div>
<div class="hero-title">uutils<span class="hero-cursor">_</span></div>
<p class="hero-tagline">Cross-platform Rust reimplementations of the command-line tools you use every day, with full GNU compatibility.</p>
<div class="hero-cta">
<a class="btn btn-primary" href="/playground">Try the playground</a>
<a class="btn btn-ghost" href="https://github.com/uutils">View on GitHub</a>
</div>
</div>
</div>
</div>

The uutils project reimplements ubiquitous command line utilities in
Expand All @@ -29,83 +42,36 @@ C has served us well for decades, but it is time to move on. For new generations

This is not about fighting the GNU project. It is not primarily about security (GNU coreutils only had 17 CVEs since 2003) or about license debates. It is about **modernizing foundational software** so it can be maintained and improved by the next generation of contributors.

Ubuntu is already [carefully but purposefully adopting](https://discourse.ubuntu.com/t/carefully-but-purposefully-oxidising-ubuntu/56995) uutils coreutils, and Debian is following the same path.
Ubuntu is already [carefully but purposefully adopting](https://discourse.ubuntu.com/t/carefully-but-purposefully-oxidising-ubuntu/56995) uutils coreutils, Debian is following the same path, and Microsoft offers it as well.

# Projects

<div class="projects">
<a class="project" href="/coreutils">
<h2>coreutils</h2>
<p>
The commands you use everyday: <code>ls</code>, <code>cp</code>, etc. Production ready!
</p>
</a>
<a class="project" href="/findutils">
<h2>findutils</h2>
<p>
Finding what you need: <code>find</code>, <code>locate</code>, <code>updatedb</code> &amp; <code>xargs</code>.
</p>
</a>
<a class="project" href="/diffutils">
<h2>diffutils</h2>
<p>
Comparing text and files: <code>diff</code>, <code>cmp</code>, <code>diff3</code>, <code>sdiff</code>.
</p>
</a>
<a class="project" href="/util-linux">
<h2>util-linux</h2>
<p>
Essential system utilities: <code>mount</code>, <code>fdisk</code>, <code>lsblk</code>, <code>dmesg</code> and more.
</p>
</a>
<a class="project" href="/procps">
<h2>procps</h2>
<p>
Process monitoring utilities: <code>ps</code>, <code>top</code>, <code>free</code>, <code>vmstat</code> and more.
</p>
</a>
<a class="project" href="/sed">
<h2>sed</h2>
<p>
Stream editor for filtering and transforming text.
</p>
</a>
<a class="project" href="/tar">
<h2>tar</h2>
<p>
Archiving utility for creating and extracting tar archives.
</p>
</a>
<a class="project" href="/acl">
<h2>acl</h2>
<p>
Access control list utilities: <code>getfacl</code>, <code>setfacl</code>, <code>chacl</code>.
</p>
</a>
<a class="project" href="/hostname">
<h2>hostname</h2>
<p>
Show or set the system hostname.
</p>
</a>
<a class="project" href="/login">
<h2>login</h2>
<p>
Login and user management utilities: <code>login</code>, <code>su</code>, <code>passwd</code> and more.
</p>
</a>
<a class="project" href="/bsdutils">
<h2>bsdutils</h2>
<p>
BSD utility programs: <code>cal</code>, <code>logger</code>, <code>script</code>, <code>wall</code> and more.
</p>
</a>
<a class="project" href="/shadow-rs">
<h2>shadow-rs</h2>
<p>
User and group management: <code>useradd</code>, <code>passwd</code>, <code>groupadd</code>, <code>usermod</code> and more.
</p>
</a>
<div class="term">
<div class="term-bar">
<span class="t">uutils list --status</span>
<span class="win-btn" title="Minimize"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"><path d="M4 11h8"/></svg></span>
<span class="win-btn" title="Maximize"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"><rect x="4.5" y="4.5" width="7" height="7" rx="1"/></svg></span>
<span class="win-btn close" title="Close"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"><path d="M4.5 4.5l7 7M11.5 4.5l-7 7"/></svg></span>
</div>
<div class="term-body">
<div class="term-prompt"><span class="pr">$</span> uutils list --status</div>
<div class="projects">
<a class="prow" href="/coreutils"><span class="name">coreutils</span><span class="desc">everyday commands: <code>ls</code>, <code>cp</code>, <code>mv</code></span><span class="st st-ready">ready</span></a>
<a class="prow" href="/findutils"><span class="name">findutils</span><span class="desc"><code>find</code>, <code>locate</code>, <code>xargs</code></span><span class="st st-beta">beta</span></a>
<a class="prow" href="/diffutils"><span class="name">diffutils</span><span class="desc"><code>diff</code>, <code>cmp</code>, <code>diff3</code>, <code>sdiff</code></span><span class="st st-beta">beta</span></a>
<a class="prow" href="/grep"><span class="name">grep</span><span class="desc"><code>grep</code>, <code>egrep</code>, <code>fgrep</code></span><span class="st st-beta">beta</span></a>
<a class="prow" href="/util-linux"><span class="name">util-linux</span><span class="desc"><code>mount</code>, <code>fdisk</code>, <code>lsblk</code>, <code>dmesg</code></span><span class="st st-wip">in progress</span></a>
<a class="prow" href="/procps"><span class="name">procps</span><span class="desc"><code>ps</code>, <code>top</code>, <code>free</code>, <code>vmstat</code></span><span class="st st-wip">in progress</span></a>
<a class="prow" href="/sed"><span class="name">sed</span><span class="desc">stream editor for filtering and transforming text</span><span class="st st-alpha">alpha</span></a>
<a class="prow" href="/awk"><span class="name">awk</span><span class="desc">pattern scanning and text-processing language</span><span class="st st-wip">in progress</span></a>
<a class="prow" href="/tar"><span class="name">tar</span><span class="desc">create and extract tar archives</span><span class="st st-wip">in progress</span></a>
<a class="prow" href="/acl"><span class="name">acl</span><span class="desc"><code>getfacl</code>, <code>setfacl</code>, <code>chacl</code></span><span class="st st-wip">in progress</span></a>
<a class="prow" href="/hostname"><span class="name">hostname</span><span class="desc">show or set the system hostname</span><span class="st st-wip">in progress</span></a>
<a class="prow" href="/login"><span class="name">login</span><span class="desc"><code>login</code>, <code>su</code>, <code>passwd</code></span><span class="st st-wip">in progress</span></a>
<a class="prow" href="/bsdutils"><span class="name">bsdutils</span><span class="desc"><code>cal</code>, <code>logger</code>, <code>script</code>, <code>wall</code></span><span class="st st-wip">in progress</span></a>
<a class="prow" href="/shadow"><span class="name">shadow</span><span class="desc"><code>useradd</code>, <code>passwd</code>, <code>groupadd</code></span><span class="st st-wip">in progress</span></a>
</div>
</div>
</div>

# Crates
Expand All @@ -119,10 +85,19 @@ which are published on [crates.io](https://crates.io/).
- [`platform-info`](https://github.com/uutils/platform-info)
- [`uutils-term-grid`](https://github.com/uutils/uutils-term-grid)

# Who we are

uutils is a community-driven, open-source effort maintained by volunteers around the world. There is no company behind it, just contributors who care about the future of foundational command-line tools.

Everything happens in the open on [GitHub](https://github.com/uutils), and newcomers are genuinely welcome. Many of our contributors landed their first-ever open-source patch on a uutils project, and we are happy to help you do the same.

[Meet the team](/team) behind uutils.

# Contributing

You can help us out by:

- [Tackling a good first issue](https://github.com/search?q=org%3Auutils+is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22&type=issues&s=created&o=desc) across any of our projects (the easiest way to get started)
- Contributing code
- Contributing documentation
- Reporting bugs (e.g. incompatibilities with GNU utilities)
Expand Down
25 changes: 25 additions & 0 deletions content/awk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
+++

title = "awk"
template = "project.html"

[extra]
wip = true

+++

Rust implementation of `awk`, the pattern scanning and text-processing language.

This project aims to be a drop-in replacement of the original command.

# Goals

This project aims to be a drop-in replacement for GNU awk (gawk). Differences with the original are treated as bugs.

# Contributing

To contribute to uutils awk, please see [CONTRIBUTING](https://github.com/uutils/awk/blob/main/CONTRIBUTING.md).

# License

uutils awk is licensed under the MIT License - see the [LICENSE](https://github.com/uutils/awk/blob/main/LICENSE) file for details.
3 changes: 3 additions & 0 deletions content/coreutils.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
title = "coreutils"
template = "project.html"

[extra]
status = "ready"

+++

uutils coreutils is a cross-platform reimplementation of the GNU coreutils in Rust. While all programs have been implemented, some options might be missing or different behavior might be experienced.
Expand Down
3 changes: 3 additions & 0 deletions content/diffutils.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
title = "diffutils"
template = "project.html"

[extra]
status = "beta"

+++

Rust implementation of GNU diffutils: `diff`, `cmp`, `diff3` and `sdiff`.
Expand Down
3 changes: 3 additions & 0 deletions content/findutils.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
title = "findutils"
template = "project.html"

[extra]
status = "beta"

+++

Rust implementation of GNU findutils: `xargs`, `find`, `locate` and `updatedb`.
Expand Down
27 changes: 27 additions & 0 deletions content/grep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
+++

title = "grep"
template = "project.html"

[extra]
status = "beta"

+++

Rust implementation of GNU grep: `grep`, `egrep` and `fgrep`.

This project aims to be a drop-in replacement of the original commands.

# Goals

This project aims to be a drop-in replacement for GNU grep. Differences with GNU are treated as bugs.

# Contributing

To contribute to uutils grep, please see [CONTRIBUTING](https://github.com/uutils/grep/blob/main/CONTRIBUTING.md).

# License

uutils grep is licensed under the MIT License - see the [LICENSE](https://github.com/uutils/grep/blob/main/LICENSE) file for details.

GNU grep is licensed under the GPL 3.0 or later.
Loading