No description https://puppyutils.org/
  • Rust 97.5%
  • Nix 2.2%
  • Shell 0.3%
Find a file
2026-02-16 13:23:42 +01:00
.cargo Use optimized rustflags only on release profile 2025-05-18 14:37:34 +01:00
.github/workflows Add a basic ci 2025-05-18 14:22:14 +01:00
docs Add basic touch command implementation 2025-09-11 21:55:36 +02:00
src Update sap and toolchain 2026-02-16 13:23:42 +01:00
.envrc Configure nix shell 2026-02-16 13:23:22 +01:00
.gitignore Configure nix shell 2026-02-16 13:23:22 +01:00
build-release.sh Update sap and toolchain 2026-02-16 13:23:42 +01:00
Cargo.lock Update sap and toolchain 2026-02-16 13:23:42 +01:00
Cargo.toml Update sap and toolchain 2026-02-16 13:23:42 +01:00
CONTRIBUTING.md Add contributing guide 2025-06-27 12:59:07 +02:00
flake.lock Configure nix shell 2026-02-16 13:23:22 +01:00
flake.nix Configure nix shell 2026-02-16 13:23:22 +01:00
LICENSE Add license file 2025-05-30 15:55:13 +02:00
README.md Update readme 2025-09-12 03:19:11 +02:00
rust-toolchain.toml Update sap and toolchain 2026-02-16 13:23:42 +01:00

Puppyutils

An efficient and correct implementation of coreutils, util-linux and other core Linux system utilities written in Rust.

Features

  • Memory Safe: Written in Rust
  • Compact: Optimized for minimal binary size and memory footprint
  • Fast: Efficient implementations that outperform traditional utilities

Installation

Building from Source

git clone https://github.com/puppyutils/puppyutils
cd puppyutils
./build-release.sh

The project uses a pinned nightly toolchain specified in rust-toolchain.toml - rustup will automatically install the correct version and components.

Available Utilities

Fully Implemented

  • true - Exit with success status
  • false - Exit with failure status
  • uname - Display system information
  • whoami - Display current username
  • yes - Output strings repeatedly
  • pwd - Print current working directory
  • tty - Print terminal name
  • wc - Count lines, words, characters, and bytes in files

Partially Implemented

  • touch - Update file timestamps and create files (supports -a, -m, -c flags)
  • cat - Concatenate and display files (basic functionality implemented)
  • mkdir - Create directories (basic functionality, missing -p, -m, -v options)
  • ls - List directory contents (framework implemented but currently non-functional)

Development Status

The project is in active development with a focus on correctness, performance, and minimal binary size. Current priorities include completing core file system utilities and implementing comprehensive option support for partially completed commands.

Usage

All utilities support standard --help and --version flags. Options after -- will be ignored and passed as values.

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines on contributing to the project.

License

This project is licensed under the EUPL. For more information, please see the LICENSE file.