2024-08-03 17:08:47 +00:00
|
|
|
# Microfetch
|
|
|
|
|
2024-08-04 13:35:16 +00:00
|
|
|
A stupidly simple fetch tool, written in Rust. Runs in a fraction of a second,
|
|
|
|
displays most nonsense people on r/unixporn care about. Aims to replace
|
|
|
|
fastfetch on my system, but probably not on yours. Though you are more than
|
|
|
|
welcome to use it on your system: it's fast.
|
|
|
|
|
|
|
|
![Demo](.github/assets/demo.png)
|
2024-08-03 17:08:47 +00:00
|
|
|
|
|
|
|
## Features
|
|
|
|
|
2024-08-04 13:35:16 +00:00
|
|
|
- Fast
|
|
|
|
- Really fast
|
|
|
|
- Minimal dependencies
|
2024-08-04 21:57:07 +00:00
|
|
|
- Actually really fast
|
2024-08-04 13:35:16 +00:00
|
|
|
- Cool NixOS logo (other, inferior, distros are not supported)
|
|
|
|
- Reliable detection of following info:
|
|
|
|
- Hostname/Username
|
|
|
|
- Kernel
|
|
|
|
- Name
|
|
|
|
- Version
|
|
|
|
- Architecture
|
|
|
|
- Current shell (from $SHELL)
|
|
|
|
- WM/Compositor and display backend
|
|
|
|
- Memory Usage/Total Memory
|
|
|
|
- Storage Usage/Total Storage (for `/` only)
|
|
|
|
- Shell Colors
|
2024-08-04 21:57:07 +00:00
|
|
|
- Did I mention fast?
|
|
|
|
|
|
|
|
## Benchmarks
|
|
|
|
|
|
|
|
Microfetch's performance is mostly hardware-dependant, however, the overall
|
|
|
|
trend seems to be < 2ms on any modern (2015 and after) CPU. Below are the
|
|
|
|
benchmarks with Hyperfine on my desktop system.
|
|
|
|
|
|
|
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|
|
|
|
| :-------------------------- | --------: | -------: | -------: | -------: |
|
|
|
|
| `target/release/microfetch` | 1.3 ± 0.1 | 1.2 | 3.7 | 1.00 |
|
|
|
|
|
|
|
|
On an average configuration, this is roughly 25 times faster than fastfetch and
|
|
|
|
around 80 times faster than neofetch. Results, as stated above, may vary.
|
2024-08-04 13:35:16 +00:00
|
|
|
|
|
|
|
## Customizing
|
|
|
|
|
|
|
|
You can't.
|
|
|
|
|
2024-08-04 21:57:07 +00:00
|
|
|
### Why?
|
|
|
|
|
|
|
|
Customization, of any kind, is expensive: I could try reading environment
|
|
|
|
variables, parse command-line arguments or read a configuration file but all of
|
|
|
|
those increment execution time and resource consumption by a lot.
|
|
|
|
|
|
|
|
### Really?
|
|
|
|
|
|
|
|
To be fair, you _can_ customize Microfetch by... Well, patching it. It's not the
|
|
|
|
best way per se, but it will be the only way that does not compromise on speed.
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
|
|
|
|
I will, mostly, reject feature additions. This is not to say you should avoid
|
|
|
|
them altogether, as you might have a really good idea worth discussing but as a
|
|
|
|
general rule of thumb consider talking to me before creating a feature PR.
|
|
|
|
|
|
|
|
Contributions that help improve performance in specific areas of Microfetch are
|
|
|
|
welcome. Though, prepare to be bombarded with questions.
|
|
|
|
|
2024-08-04 13:35:16 +00:00
|
|
|
## License
|
2024-08-03 17:08:47 +00:00
|
|
|
|
2024-08-04 13:35:16 +00:00
|
|
|
Microfetch is licensed under [GPL3](LICENSE). See the license file for details.
|