Skip to content

HugoQwQ/nextfetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NextFetch

A fast, modern system information tool written in Rust, inspired by neofetch but designed for performance and extensibility.

Features

  • πŸš€ Fast Performance: Built in Rust for maximum speed and efficiency
  • πŸ“Š Comprehensive Info: System, hardware, and runtime information
  • βš™οΈ Configurable: Extensive configuration options (Not now :D)
  • πŸ”§ Cross-Platform: Supports Windows, macOS, and Linux
  • πŸ“ˆ Memory Efficient: Minimal resource usage
  • 🎯 Modular Design: Clean, extensible architecture

Installation

From Source

git clone https://github.com/HugoQwQ/nextfetch.git
cd nextfetch
cargo build --release

The binary will be available at target/release/nextfetch.

Using Cargo (Not now :D)

cargo install nextfetch

Usage

Basic Usage

Simply run the command to display system information:

nextfetch

Configuration (WIP)

NextFetch uses TOML configuration files for customization. The default configuration is loaded from:

  • Linux/macOS: ~/.config/nextfetch/config.toml
  • Windows: %APPDATA%\nextfetch\config.toml

Example Configuration

# Display fields to show
display_fields = [
    "os",
    "hostname", 
    "kernel",
    "uptime",
    "cpu",
    "memory",
    "storage"
]

# Color theme configuration
[color_theme]
primary = "#61afef"
secondary = "#98c379"
accent = "#e06c75"
text = "#abb2bf"

# ASCII art configuration
[ascii_art]
enabled = true
builtin_style = "auto"  # auto, default, windows, linux, macos, ubuntu, arch, fedora
custom_path = "/path/to/custom/ascii.txt"  # Optional custom ASCII art file

# Performance settings
[performance]
timeout_ms = 1000
max_memory_mb = 10
parallel_collection = true

ASCII Art Styles

NextFetch includes built-in ASCII art for various operating systems:

  • auto - Automatically detects OS and uses appropriate logo
  • default - Generic NextFetch logo
  • windows - Windows logo
  • linux - Tux penguin
  • macos - Apple logo
  • ubuntu - Ubuntu logo
  • arch - Arch Linux logo
  • fedora - Fedora logo

Custom ASCII Art

You can use custom ASCII art by specifying a file path in the configuration:

[ascii_art]
enabled = true
custom_path = "/path/to/your/ascii.txt"

Output Example

    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    πŸ–₯️  OS      : Windows 11 (22631)
    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    πŸ“¦ Version : 11 (22631)
    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    πŸ”§ Kernel  : 22631
    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    🏠 Host    : DESKTOP-EXAMPLE

    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    ⚑ CPU     : Intel(R) Core(TM) i7-8700K (8 cores)
    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ               @ 3700 MHz
    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    🧠 Memory  : 8.2 GB / 16.0 GB (51%) [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘]
    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
                          ⏰ Uptime  : 2h 15m

System Information

NextFetch displays comprehensive system information including:

Operating System

  • OS name and version
  • Kernel version
  • Hostname

Hardware

  • CPU model and core count
  • CPU frequency
  • Memory usage with visual bar
  • Storage information
  • GPU information (when available)

Runtime

  • System uptime
  • Load averages (Linux/macOS)
  • Boot time

Performance

NextFetch is designed for speed and efficiency:

  • Sub-second execution: Typically completes in under 200ms
  • Low memory usage: Uses less than 10MB of RAM
  • Parallel collection: Gathers information concurrently
  • Efficient rendering: Optimized output formatting

Architecture

The project follows a modular architecture:

src/
β”œβ”€β”€ lib.rs              # Main library entry point
β”œβ”€β”€ main.rs             # CLI application entry point
β”œβ”€β”€ cli.rs              # Command line interface
β”œβ”€β”€ config.rs           # Configuration management
β”œβ”€β”€ models.rs           # Data structures
β”œβ”€β”€ error.rs            # Error handling
β”œβ”€β”€ ascii_art.rs        # ASCII art management
β”œβ”€β”€ renderer.rs         # Output rendering
β”œβ”€β”€ collectors/         # Information collectors
β”‚   β”œβ”€β”€ mod.rs
β”‚   β”œβ”€β”€ system.rs       # OS information
β”‚   β”œβ”€β”€ hardware.rs     # Hardware information
β”‚   └── runtime.rs      # Runtime information
└── platform/           # Platform-specific implementations
    β”œβ”€β”€ mod.rs
    β”œβ”€β”€ windows.rs      # Windows-specific code
    β”œβ”€β”€ linux.rs        # Linux-specific code
    └── macos.rs        # macOS-specific code

Development

Building

# Debug build
cargo build

# Release build
cargo build --release

# Run tests
cargo test

Testing

The project includes comprehensive tests:

# Run all tests
cargo test

# Run specific test module
cargo test renderer::tests

# Run tests with output
cargo test -- --nocapture

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass (cargo test)
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

Roadmap

  • Package managers support (Homebrew, Chocolatey, etc.)
  • Config support
  • Plugin system for custom information collectors
  • Web interface for remote system monitoring
  • JSON/XML output formats
  • More ASCII art styles
  • Theme marketplace
  • Performance benchmarking tools

License

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

Acknowledgments

  • Inspired by neofetch
  • Built with Rust
  • Uses sysinfo for system information
  • ASCII art inspired by various community contributions

Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with detailed information

NextFetch - Fast, beautiful, and efficient system information at your fingertips! πŸš€

About

A fast, modern system information tool written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages