rustch

Crates.iorustch
lib.rsrustch
version1.0.0
created_at2025-05-28 19:34:17.475869+00
updated_at2025-05-28 19:34:17.475869+00
descriptionA lightning-fast Rust-based system information tool with ASCII art logos
homepage
repositoryhttps://github.com/crabbydev/rustch
max_upload_size
id1693179
size85,266
CrabbyDev (crabbydev)

documentation

README

🚀 rustch

A lightning-fast, modern Rust-based system information tool with beautiful ASCII art logos and theme colors for Linux/Unix distributions.

License Rust Platform Build Status

✨ Features

  • Lightning Fast - Sub-100ms execution time with optimized Rust binary
  • 🎨 Beautiful ASCII Art - Hand-crafted logos for 25+ Linux/Unix distributions
  • 🌈 Theme Colors - Authentic color schemes matching each distribution's branding
  • 📊 Comprehensive Info - OS, kernel, shell, uptime, packages, hardware details
  • 🔧 Cross-Platform - Supports Linux, macOS, FreeBSD, OpenBSD, NetBSD
  • 🛡️ Memory Safe - Written in Rust with zero unsafe code and proper error handling
  • 📦 Zero Dependencies - Single binary with no external runtime requirements
  • 🎯 Neofetch Alternative - Drop-in replacement with better performance

🖼️ Screenshots

         _     OS:: Ubuntu 22.04 LTS
     ---(_)    Host:: ThinkPad X1 Carbon
 _/  ---  \    Kernel:: 6.2.0-26-generic
(_) |   |      Uptime:: 2h 15m
  \  --- _/    Packages:: 1847 (dpkg)
     ---(_)    Shell:: zsh
               DE:: GNOME
Ubuntu         WM:: Mutter
               Terminal:: gnome-terminal
               CPU:: Intel i7-1185G7 (8 cores)
               Memory:: 8.2GB / 16.0GB

🐧 Supported Distributions

Linux Distributions

  • Ubuntu - Complete with official orange/purple theme
  • Debian - Classic swirl design in authentic red
  • Arch Linux - Iconic mountain logo in blue
  • Fedora - Modern infinity symbol design
  • CentOS - Traditional enterprise styling
  • openSUSE - Distinctive gecko-inspired theme
  • Gentoo - Purple 'g' logo with authentic colors
  • Alpine Linux - Mountain peak design
  • Manjaro - Green block pattern
  • Linux Mint - Elegant mint green styling
  • Elementary OS - Clean, minimal design
  • Pop!_OS - System76's orange and teal theme
  • Kali Linux - Dragon-inspired hacker aesthetic
  • NixOS - Snowflake logo in blue
  • Void Linux - Minimalist void theme
  • EndeavourOS - Arch-based with purple accent
  • Zorin OS - Modern blue gradient
  • Deepin - Elegant teal styling
  • Solus - Distinctive blue design
  • Garuda Linux - Pink and purple gaming theme
  • Slackware - Classic enterprise design
  • RHEL - Red Hat Enterprise branding

Unix Systems

  • macOS - Apple logo with system blue
  • FreeBSD - Red daemon mascot theme
  • OpenBSD - Yellow pufferfish design
  • NetBSD - Orange flag styling

🚀 Installation

Quick Install (Recommended)

curl -sSL https://raw.githubusercontent.com/crabbydev/rustch/main/install.sh | bash

Manual Installation

From Source (requires Rust)

git clone https://github.com/crabbydev/rustch.git
cd rustch
cargo build --release
sudo cp target/release/rustch /usr/local/bin/

Pre-built Binaries

Download the latest release for your platform from the Releases page.

Package Managers

Arch Linux (AUR)

yay -S rustch
# or
paru -S rustch

Homebrew (macOS/Linux)

brew install rustch

Cargo

cargo install rustch

📖 Usage

Basic Usage

rustch

Command Line Options

rustch --help

A lightning-fast Rust-based system information tool

Usage: rfetch [OPTIONS]

Options:
  -a, --no-art        Disable ASCII art
  -c, --no-color      Disable colors
  -d, --distro <DISTRO>  Force specific distribution detection
  -h, --help          Print help
  -V, --version       Print version

Examples

# Standard output with ASCII art and colors
rustch

# Minimal output without ASCII art
rustch --no-art

# Force specific distribution
rustch --distro arch

# Monochrome output
rustch --no-color

🔧 Configuration

rustch automatically detects your system and displays appropriate ASCII art and colors. No configuration files needed!

Environment Variables

  • XDG_CURRENT_DESKTOP - Desktop environment detection
  • XDG_SESSION_DESKTOP - Session type detection
  • TERM_PROGRAM - Terminal application detection

🏗️ Building from Source

Prerequisites

  • Rust 1.70 or later
  • Git

Build Steps

git clone https://github.com/crabbydev/rustch
cd rustch

# Debug build
cargo build

# Release build (optimized)
cargo build --release

# Run tests
cargo test

# Install locally
cargo install --path .

Development

# Format code
cargo fmt

# Lint code
cargo clippy

# Run with arguments
cargo run -- --no-art

# Cross-compile for different targets
cargo build --target x86_64-unknown-linux-musl

📊 Performance

rfetch is designed for speed and efficiency:

  • Startup time: < 100ms on modern hardware
  • Memory usage: < 5MB RAM
  • Binary size: < 2MB (stripped)
  • Dependencies: Zero runtime dependencies

Benchmarks vs Alternatives

Tool Execution Time Memory Usage Binary Size
rustch 85ms 4.2MB 1.8MB
neofetch 450ms 25MB N/A (script)
screenfetch 380ms 18MB N/A (script)
fastfetch 120ms 8MB 3.2MB

🤝 Contributing

We welcome contributions! Here's how you can help:

Adding New Distributions

  1. Add ASCII art in src/ascii.rs
  2. Add color theme in src/colors.rs
  3. Add detection logic in src/distro.rs
  4. Test on the target distribution

Reporting Issues

  • Use the issue tracker
  • Include your distribution and rfetch version
  • Provide terminal output if relevant

Pull Requests

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and test thoroughly
  4. Commit with clear messages: git commit -m "Add support for XYZ distro"
  5. Push and create a pull request

Code Style

  • Follow Rust standard formatting: cargo fmt
  • Ensure clippy passes: cargo clippy
  • Add tests for new functionality
  • Update documentation as needed

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Inspired by neofetch and fastfetch
  • ASCII art designs based on official distribution branding
  • Built with the amazing Rust ecosystem
  • Color schemes sourced from official distribution style guides

📈 Roadmap

  • Windows support via WSL detection
  • Custom ASCII art from files
  • Plugin system for custom modules
  • JSON/XML output formats
  • Integration with system monitoring tools
  • Wayland-native information gathering
  • Custom color theme configuration

🐛 Known Issues

  • Some package managers may not be detected correctly
  • Window manager detection may fail in exotic setups
  • GPU information not yet implemented

📞 Support


⭐ Star this repository if you find rustch useful! ⭐

Made with ❤️ and 🦀 Rust

Commit count: 24

cargo fmt