https://github.com/jnsgruk/oxidizr
🦀 Install modern Rust-based replacements of packages such as coreutils, findutils, diffutils and sudo, making them the default on an Ubuntu system 🦀
https://github.com/jnsgruk/oxidizr
coreutils rust sudo ubuntu uutils
Last synced: 4 months ago
JSON representation
🦀 Install modern Rust-based replacements of packages such as coreutils, findutils, diffutils and sudo, making them the default on an Ubuntu system 🦀
- Host: GitHub
- URL: https://github.com/jnsgruk/oxidizr
- Owner: jnsgruk
- License: apache-2.0
- Created: 2025-03-03T11:11:21.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-01T17:17:10.000Z (9 months ago)
- Last Synced: 2025-09-01T19:03:32.918Z (9 months ago)
- Topics: coreutils, rust, sudo, ubuntu, uutils
- Language: Rust
- Homepage:
- Size: 98.6 KB
- Stars: 335
- Watchers: 4
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# oxidizr
`oxidizr` is a command-line utility for managing system experiments that replace traditional Unix utilities with modern Rust-based alternatives on Ubuntu systems.
It currently supports the following experiments:
- [uutils coreutils](https://github.com/uutils/coreutils)
- [uutils findutils](https://github.com/uutils/findutils)
- [uutils diffutils](https://github.com/uutils/diffutils)
- [sudo-rs](https://github.com/trifectatechfoundation/sudo-rs)
By default, the `coreutils` and `sudo-rs` experiments are enabled because they're the most complete, stable experiments. Others can be toggled using command line arguments shown below.
## Installation
> [!WARNING]
> `oxidizr` is an experimental tool to help developers and tinkerers play with relatively new alternatives to core system utilities. It may cause a loss of data, or prevent your system from booting, so use with caution!
You can install `oxidizr` by downloading binaries from the Github [releases](https://github.com/jnsgruk/oxidizr/releases/latest). Releases are currently published for `amd64` and `aarch64`.
The following will establish the latest released version, download the archive and extract the `oxidizr` binary to `/usr/bin/oxidizr`.
```bash
# Get the latest release
latest="$(curl -s "https://api.github.com/repos/jnsgruk/oxidizr/releases/latest" | jq -r '.name')"
# Download and install to /usr/bin/oxidizr
curl -sL "https://github.com/jnsgruk/oxidizr/releases/download/$latest/oxidizr_Linux_$(uname -m).tar.gz" | sudo tar -xvzf - -C /usr/bin oxidizr
```
Or you can build and install `oxidizr` using `cargo`:
```bash
cargo install --git https://github.com/jnsgruk/oxidizr
```
## Usage
The program must be run as root and supports two main commands:
- `enable`: Activates selected experiments
- `disable`: Deactivates selected experiments
```bash
A command-line utility to install modern Rust-based replacements of essential packages such as coreutils, findutils, diffutils and sudo and make them the default on an Ubuntu system.
Usage: oxidizr [OPTIONS]
Commands:
enable Enable experiments with oxidizr
disable Disable any previous experiments enabled with oxidizr
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose...
Increase logging verbosity
-q, --quiet...
Decrease logging verbosity
-y, --yes
Skip confirmation prompts
-a, --all
Enable/disable all known experiments
-e, --experiments ...
Select experiments to enable or disable
[default: coreutils sudo-rs]
--no-compatibility-check
Skip experiment compatibility checks (dangerous)
This bypasses all system compatibility checks including Ubuntu distribution
and version requirements. Likely to result in failure to complete, may lead
to system instability
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
```
### Example
```bash
# Enable all experiments
sudo oxidizr enable --all
# Enable just coreutils and findutils experiments
sudo oxidizr enable --experiments coreutils findutils
# Enable just coreutils experiment without prompting with debug logging enabled
sudo oxidizr enable --experiments coreutils --yes -v
# Enable an experiment on an unsupported system (dangerous)
sudo oxidizr enable --no-compatibility-check
# Enable an experiment on an unsupported system without prompting (very dangerous)
sudo oxidizr enable --no-compatibility-check --yes
```
## Building `oxidizr`
```bash
# Build with cargo
cargo build
# Run tests
cargo test -- --show-output
# Lint / format
cargo clippy
cargo fmt
```