docs: clarify project state after the no_std rework

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib44a2dce66938d1100972a9137c01dff6a6a6964
This commit is contained in:
raf 2026-03-28 08:10:11 +03:00
commit 14fc728181
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF

View file

@ -19,12 +19,12 @@
[fastfetch]: https://github.com/fastfetch-cli/fastfetch [fastfetch]: https://github.com/fastfetch-cli/fastfetch
Stupidly small and simple, laughably fast and pretty fetch tool. Written in Rust Stupidly small and simple, laughably fast, and pretty fetch tool. Written
for speed and ease of maintainability. Runs in a _fraction of a millisecond_ and (mostly) in Rust for speed and ease of maintainability. Runs in a _fraction of a
displays _most_ of the nonsense you'd see posted on r/unixporn or other internet millisecond_ and displays _most_ of the nonsense you'd see posted on r/unixporn
communities. Aims to replace [fastfetch] on my personal system, but or other internet communities. Aims to replace [fastfetch] on my personal
[probably not yours](#customizing). Though, you are more than welcome to use it system, but [probably not yours](#customizing). Though, you are more than
on your system: it is pretty _[fast](#benchmarks)_... welcome to use it on your system: it is pretty _[fast](#benchmarks)_...
<p align="center"> <p align="center">
<br/> <br/>
@ -40,9 +40,9 @@ on your system: it is pretty _[fast](#benchmarks)_...
- Fast - Fast
- Really fast - Really fast
- Minimal dependencies - No dependencies (not even libc!)
- Tiny binary (~370kb [^1]) - Tiny binary (~25kb)
- Actually really fast - Actually _really_ fast
- Cool NixOS logo (other, inferior, distros are not supported) - Cool NixOS logo (other, inferior, distros are not supported)
- Reliable detection of following info: - Reliable detection of following info:
- Hostname/Username - Hostname/Username
@ -57,12 +57,9 @@ on your system: it is pretty _[fast](#benchmarks)_...
- Shell Colors - Shell Colors
- Did I mention fast? - Did I mention fast?
- Respects [`NO_COLOR` spec](https://no-color.org/) - Respects [`NO_COLOR` spec](https://no-color.org/)
- Funny [^2] - Funny [^1]
[^1]: With the Mold linker, which is enabled by default in the Flake package, [^1]: I don't know how else to describe the (unhealthy) amount of handwritten
the binary size is roughly 350kb. That's nearly 20kb reduction in size :)
[^2]: I don't know how else to describe the (unhealthy) amount of handwritten
assembly that was written in order to make Microfetch faster. assembly that was written in order to make Microfetch faster.
## Motivation ## Motivation
@ -70,12 +67,12 @@ on your system: it is pretty _[fast](#benchmarks)_...
[Rube-Goldmark Machine]: https://en.wikipedia.org/wiki/Rube_Goldberg_machine [Rube-Goldmark Machine]: https://en.wikipedia.org/wiki/Rube_Goldberg_machine
Fastfetch, as its name _probably_ already hinted, is a very fast fetch tool Fastfetch, as its name _probably_ already hinted, is a very fast fetch tool
written in C. I used to use Fastfetch on my systems, but I eventually came to written in C. I _used to_ use Fastfetch on my systems, but I eventually came to
the realization that I am _not interested in any of its additional features_. I the realization that I am _not interested in any of its additional features_. I
don't use Sixel, I don't change my configuration more than maybe once a year and don't use Sixel, I don't change my configuration more than maybe once a year and
I don't even display most of the fields that it does. Sure the configurability I don't even display most of the fields that it has. Sure, the configurability
is nice and I can configure the defaults that I do not like but how often do I is nice and _I could_ configure the defaults that I do not like... but how often
really do that? do I really do that?
Since I already enjoy programming challenges, and don't use a fetch program that Since I already enjoy programming challenges, and don't use a fetch program that
often, I eventually came to try and answer the question _how fast can I make my often, I eventually came to try and answer the question _how fast can I make my
@ -84,24 +81,29 @@ and put in my `~/.bashrc` but is _actually_ incredibly fast because it opts out
of all the customization options provided by tools such as Fastfetch. Since of all the customization options provided by tools such as Fastfetch. Since
Fetch scripts are kind of a coming-of-age ritual for most Linux users, I've Fetch scripts are kind of a coming-of-age ritual for most Linux users, I've
decided to use it on my system. You also might be interested if you like the decided to use it on my system. You also might be interested if you like the
defaults and like speed. defaults and like speed. Ultimately, Microfetch a small, opinionated binary with
a nice size that doesn't bother me, and _incredible_ speed. Customization? No
thank you.
Ultimately, it's a small, opinionated binary with a nice size that doesn't I cannot re-iterate it enough, Microfetch is _annoyingly fast_. It, however,
bother me, and incredible speed. Customization? No thank you. I cannot does not solve a real technical problem. The "problem" Microfetch "solves" is
re-iterate it enough, Microfetch is _annoyingly fast_. It does not, however, entirely self-imposed. I want a fast, _almost_ zero-cost command invocation and
solve a technical problem. The "problem" Microfetch solves is entirely for it to not take that much space on my system. Thanks to the nature of Rust,
self-imposed. On the matter of _size_, the project is written in Rust, which Microfetch is _fast_. Rust does, or well, _did_ mean "bloated" dependency trees
comes at the cost of "bloated" dependency trees and the increased build times, and slightly increased build times, though, as of 0.5.0 Microfetch has
but we make an extended effort to keep the dependencies minimal and build times (voluntarily) dropped both `std` and `libc`. You can go check the numbers for
manageable. The latter is also very easily mitigated with Nix's binary cache the speed impact (hint: it's much better) but we also have little to no concerns
systems. Since Microfetch is already in Nixpkgs, you are recommended to use it left about build times and the binary size. Build times are also _very easily_
to utilize the binary cache properly. The usage of Rust _is_ nice, however, mitigated with Nix's binary cache systems, and since Microfetch is already in
since it provides us with incredible tooling and a very powerful language that Nixpkgs you are strongly encouraged to use `pkgs.microfetch` over the flake. The
allows for Microfetch to be as fast as possible. ~~Sure C could've been used usage of Rust _is_ quite nice, however, since it provides us with incredible
here as well, but do you think I hate myself?~~ Microfetch now features tooling and a very powerful language that allows for Microfetch to be as fast as
handwritten assembly to unsafely optimize some areas. In hindsight you all possible.
should have seen this coming. Is it faster? Yes. Should you use this? If you
want to. Surely C would've been a smaller choice, but I like Rust more. Microfetch _also_
features a whole bunch of handwritten assembly with per-platform support to
_unsafely_ optimize most syscalls. In hindsight you all should have seen this
coming. Is it faster? Yes. Is it better? Uh, yes. Should you use this? Yes.
Also see: [Rube-Goldmark Machine] Also see: [Rube-Goldmark Machine]
@ -312,4 +314,5 @@ Microfetch. I might have missed your name here, but you have my thanks.
## License ## License
Microfetch is licensed under [GPL3](LICENSE). See the license file for details. This project is released under GNU Public Licence version 3 **only**. See the
[license](../LICENSE) for more details.