| Crates.io | neofetch |
| lib.rs | neofetch |
| version | 0.2.0 |
| created_at | 2024-04-15 08:28:36.189116+00 |
| updated_at | 2025-11-07 10:03:41.916919+00 |
| description | neofetch |
| homepage | https://github.com/ahaoboy/neofetch |
| repository | https://github.com/ahaoboy/neofetch |
| max_upload_size | |
| id | 1209000 |
| size | 493,313 |
A fast, cross-platform system information tool written in Rust. This is a modern reimplementation of the classic neofetch tool with improved performance, comprehensive error handling, and support for multiple platforms.
cargo install neofetch
git clone https://github.com/ahaoboy/neofetch
cd neofetch
cargo build --release
The binary will be available at target/release/neofetch
Simply run:
neofetch
| Platform | Status | Notes |
|---|---|---|
| Windows 10/11 | โ Full Support | x86, x86_64, ARM64 |
| Linux | โ Full Support | Ubuntu, Debian, Arch, Fedora, etc. |
| macOS | โ Full Support | Intel and Apple Silicon |
| Android | โ Full Support | ARM and ARM64 |
| OpenWrt | โ Full Support | Embedded routers |
| FreeBSD | โ ๏ธ Partial | Basic support |
This Rust implementation is significantly faster than the original shell-based neofetch:
hyperfine --style=full --shell=fish 'neofetch' 'fastfetch' 'neofetch-rust'
build-essential on Debian/Ubuntu)xcode-select --installcargo install cargo-ndk# Clone the repository
git clone https://github.com/ahaoboy/neofetch
cd neofetch
# Build in release mode
cargo build --release
# Run
./target/release/neofetch
# Add Android targets
rustup target add aarch64-linux-android armv7-linux-androideabi
# Build for ARM64
cargo ndk -t arm64-v8a build --release
# Add target
rustup target add mips-unknown-linux-musl
# Build
cargo build --release --target mips-unknown-linux-musl
The project is organized into several modules:
This implementation uses comprehensive error handling with the thiserror crate. All operations return Result types with detailed error messages, making debugging easier and preventing panics.
use neofetch::{cpu::get_cpu, Result};
#[tokio::main]
async fn main() -> Result<()> {
let cpu = get_cpu().await?;
println!("CPU: {}", cpu);
Ok(())
}
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
git checkout -b feature/amazing-featurecargo testcargo clippycargo fmtgit commit -m 'Add amazing feature'git push origin feature/amazing-featurecargo clippy without warningsIssue: WMI queries fail
Issue: Display information not available
Issue: Permission denied reading /proc or /sys files
sudo if neededIssue: Temperature sensors not found
lm-sensors package and run sensors-detectIssue: Temperature information not available
osx-cpu-temp via Homebrew: brew install osx-cpu-tempIssue: Some system information requires elevated privileges
sudo for complete informationIssue: Some properties not accessible
| Feature | neofetch (Rust) | neofetch (Shell) | fastfetch |
|---|---|---|---|
| Speed | โกโกโก | โก | โกโกโก |
| Cross-platform | โ | โ | โ |
| Error Handling | โ | โ | โ ๏ธ |
| Async | โ | โ | โ |
| Memory Usage | Low | Medium | Low |
| Dependencies | Minimal | Many | Minimal |
This project is licensed under the MIT License - see the LICENSE file for details.