{"id":14396123,"url":"https://github.com/Gobidev/pfetch-rs","last_synced_at":"2025-08-24T04:31:30.208Z","repository":{"id":65926920,"uuid":"602608913","full_name":"Gobidev/pfetch-rs","owner":"Gobidev","description":"A rewrite of the pfetch system information tool in Rust","archived":false,"fork":false,"pushed_at":"2024-03-11T10:51:48.000Z","size":343,"stargazers_count":205,"open_issues_count":3,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-11T23:59:04.633Z","etag":null,"topics":["command-line","cross-platform","fetch","hacktoberfest","linux","pfetch","rust","system","system-information","unix"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/pfetch","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gobidev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"ko_fi":"gobidev"}},"created_at":"2023-02-16T15:15:55.000Z","updated_at":"2024-04-23T12:05:54.589Z","dependencies_parsed_at":"2023-09-25T00:08:41.170Z","dependency_job_id":"254f9317-ffb2-417b-80f3-88979da2f231","html_url":"https://github.com/Gobidev/pfetch-rs","commit_stats":{"total_commits":64,"total_committers":7,"mean_commits":9.142857142857142,"dds":0.203125,"last_synced_commit":"aeccdd7ca2ce0db5742c3294193f239356411c43"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gobidev%2Fpfetch-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gobidev%2Fpfetch-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gobidev%2Fpfetch-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gobidev%2Fpfetch-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gobidev","download_url":"https://codeload.github.com/Gobidev/pfetch-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230776584,"owners_count":18278604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","cross-platform","fetch","hacktoberfest","linux","pfetch","rust","system","system-information","unix"],"created_at":"2024-08-29T01:01:19.559Z","updated_at":"2024-12-21T22:30:48.228Z","avatar_url":"https://github.com/Gobidev.png","language":"Rust","funding_links":["https://ko-fi.com/gobidev"],"categories":["Operation System"],"sub_categories":["Cross Platform"],"readme":"\u003ch1 align=\"center\"\u003epfetch-rs\u003c/h1\u003e\n\u003cp align=\"center\"\u003eA rewrite of the pfetch system information tool by dylanaraps in Rust\u003c/p\u003e\u003cbr\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/50576978/219375863-579c495d-8db8-4aa9-a4a6-348ecb2c849f.png\" width=\"350px\"\u003e\u003c/p\u003e\n\n## About\n\nIf you are familiar with the [pfetch](https://github.com/dylanaraps/pfetch)\nsystem information tool by [dylanaraps](https://github.com/dylanaraps), this\ndoes the exact same thing, but with an about _10x faster_ runtime. _pfetch_ is\nsimple by design with some (but not many) configuration options and a\nminimalistic look.\n\n**Supported Platforms:** Linux, Android, macOS, Windows, FreeBSD, NetBSD\n\n**Included Logos:** Alma Linux _(new)_, Alpine Linux, Android, AmogOS _(new)_,\nArch Linux, ArcoLinux, Artix Linux, Bazzite _(new)_, Bedrock Linux, Buildroot,\nCachyOS _(new)_, CelOS, CentOS, Crystal Linux, dahliaOS, Debian, Devuan, DietPi\n_(new)_, DragonflyBSD, Elementary OS, EndeavourOS, Fedora, Fiwix _(new)_,\nFreeBSD, Garuda Linux, Gentoo Linux, Gnu Hurd _(updated)_, Guix, Haiku, HydroOS,\nHyperbola, instantOS, IRIX, KDE neon, Linux Lite, Linux, Mint, macOS, Mageia,\nManjaro, Minix, MorphOS _(new)_, MX Linux, NetBSD, NixOS, Nobara Project\n_(new)_, OpenBSD, openSUSE Tumbleweed, openSUSE Leap, OpenWrt, Oracle Linux\n_(new)_, Parabola, Pop!\\_OS _(updated)_, PureOS, Raspbian, Rocky Linux _(new)_,\nSerenityOS, Slackware, Solus, SteamOS _(new)_, Solaris, Ubuntu, Vanilla OS\n_(new)_, Void Linux, Windows _(new)_, Xeonix Linux\n\nYou can check out how they look [here](./all_logos.md).\n\nFor all other distributions, a penguin will be displayed.\n\n_Credit to [the original pfetch](https://github.com/dylanaraps/pfetch) and\n[its contributors](https://github.com/dylanaraps/pfetch/graphs/contributors)._\n\nIf you want a logo to be added, feel free to open an issue or a PR.\n\n## Installation\n\n_Note: On openSUSE, install the `rpm-devel` package for faster package count._\n\n### Binary\n\nDownload a binary from the\n[latest release](https://github.com/Gobidev/pfetch-rs/releases/latest).\n\n### Cargo\n\n```sh\ncargo install pfetch\n```\n\n### Homebrew\n\n```sh\nbrew install pfetch-rs\n```\n\n### Nixpkgs\n\nInstall the\n[pfetch-rs](https://search.nixos.org/packages?channel=unstable\u0026show=pfetch-rs)\nNix package.\n\n### AUR\n\nInstall the [pfetch-rs](https://aur.archlinux.org/packages/pfetch-rs) or\n[pfetch-rs-bin](https://aur.archlinux.org/packages/pfetch-rs-bin) AUR package.\n\n## Performance\n\nBenchmarks performed on an AMD Ryzen 5 3600. Execution time is measured using\n[hyperfine](https://github.com/sharkdp/hyperfine) with `-w 4 -m 500 -N` flags.\n\n|  Implementation   | Mean [ms]  | Min [ms] | Max [ms] |\n| :---------------: | :--------: | :------: | :------: |\n| POSIX `sh` (bash) | 23.7 ± 0.9 |   22.3   |   29.3   |\n| POSIX `sh` (dash) | 15.9 ± 0.3 |   15.1   |   18.2   |\n|   Rust (v2.3.0)   | 2.2 ± 0.2  |   1.8    |   3.9    |\n\n_Note: This is with `pacman` and `flatpak` being the only installed package\nmanagers. For more info, see [Improving Performance](#imp_perf)._\n\n\u003ca name=\"imp_perf\"\u003e\u003c/a\u003e\n\n### Improving Performance\n\nCounting packages of `zypper` can be sped up a lot by installing the `rpm-devel`\npackage. If the `zypper` package count takes too long, it can be disabled by\nsetting the `PF_FAST_PKG_COUNT` environment variable to any value.\n\n## Configuration\n\nLike the original `pfetch`, `pfetch-rs` is configured through environment\nvariables. Your existing config will probably still work, the main difference is\nhow padding is configured.\n\nIf you want to display a custom logo, use the `PF_CUSTOM_LOGOS` option, an\nexample for a custom logos file can be found below.\n\n```sh\n# Which information to display.\n# Default: first example below\n# Valid: space separated string\n#\n# OFF by default: shell editor wm de palette cpu\nPF_INFO=\"ascii title os host kernel uptime pkgs memory\"\n\n# Example: Only ASCII.\nPF_INFO=\"ascii\"\n\n# Example: Only Information.\nPF_INFO=\"title os host kernel uptime pkgs memory\"\n\n# A file containing environment variables to source before running pfetch\n# Default: unset\n# Valid: A shell script\nPF_SOURCE=\"\"\n\n# A file containing pfetch logos to overwrite default logos or add new logos\n# Default: unset\n# Valid: Path to a file containing pfetch logos (example below)\nPF_CUSTOM_LOGOS=\"~/.config/pfetch_logos\"\n\n# Separator between info name and info data.\n# Default: unset\n# Valid: string\nPF_SEP=\":\"\n\n# Enable/Disable colors in output:\n# Default: 1\n# Valid: 1 (enabled), 0 (disabled)\nPF_COLOR=1\n\n# Color of info names:\n# Default: unset (auto)\n# Valid: 0-9\nPF_COL1=4\n\n# Color of info data:\n# Default: unset (auto)\n# Valid: 0-9\nPF_COL2=9\n\n# Color of title data:\n# Default: unset (auto)\n# Valid: 0-9, COL1 (copies COL1 value)\nPF_COL3=1\n\n# Alignment paddings (this is different to the original version).\n# Default: unset (auto)\n# Valid: int\nPF_PAD1=\"\"\nPF_PAD2=\"\"\nPF_PAD3=\"\"\n\n# Which ascii art to use.\n# Default: unset (auto)\n# Valid: string\nPF_ASCII=\"openbsd\"\n\n# The below environment variables control more\n# than just 'pfetch' and can be passed using\n# 'HOSTNAME=cool_pc pfetch' to restrict their\n# usage solely to 'pfetch'.\n\n# Which user to display.\nUSER=\"\"\n\n# Which hostname to display.\nHOSTNAME=\"\"\n\n# Skip zypper package count if only slow method is available\nPF_FAST_PKG_COUNT=1\n```\n\nA file containing custom pfetch logos could look like this (also found under\n`custom_logos_example`). This will turn the Arch Linux logo red, the Debian Logo\nblue and the Fedora logo yellow:\n\n```\n[Aa]rch*)\n\tread_ascii 1 \u003c\u003c- EOF\n\t\t\t${c1}       /\\\\\n\t\t\t${c1}      /  \\\\\n\t\t\t${c1}     /\\\\   \\\\\n\t\t\t${c1}    /      \\\\\n\t\t\t${c1}   /   ,,   \\\\\n\t\t\t${c1}  /   |  |  -\\\\\n\t\t\t${c1} /_-''    ''-_\\\\\n\t\tEOF\n\t;;\n[Dd]ebian*)\n\tread_ascii 4 \u003c\u003c- EOF\n\t\t\t${c4}  _____\n\t\t\t${c4} /  __ \\\\\n\t\t\t${c4}|  /    |\n\t\t\t${c4}|  \\\\___-\n\t\t\t${c4}-_\n\t\t\t${c4}  --_\n\t\tEOF\n\t;;\n[Ff]edora*)\n    read_ascii 3 \u003c\u003c- EOF\n\t\t\t        ${c3},'''''.\n\t\t\t       ${c3}|   ,.  |\n\t\t\t       ${c3}|  |  '_'\n\t\t\t${c3}  ,....|  |..\n\t\t\t${c3}.'  ,_;|   ..'\n\t\t\t${c3}|  |   |  |\n\t\t\t${c3}|  ',_,'  |\n\t\t\t${c3} '.     ,'\n\t\t\t   ${c3}'''''\n\t\tEOF\n```\n\n_Note: Make sure to use tabs for indentation and separate logos with `;;`, as\nseen above. You only need to add the logos you want to overwrite/add, the\ndefault logos will stay available. The included logos can be found at\n`./pfetch-extractor/logos.sh`._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGobidev%2Fpfetch-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGobidev%2Fpfetch-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGobidev%2Fpfetch-rs/lists"}