{"id":13578633,"url":"https://github.com/pwnwriter/hysp","last_synced_at":"2025-04-05T19:33:25.168Z","repository":{"id":207771240,"uuid":"720027182","full_name":"pwnwriter/hysp","owner":"pwnwriter","description":"📦 An independent package manager that every hacker deserves. ","archived":true,"fork":false,"pushed_at":"2024-05-26T08:59:17.000Z","size":3744,"stargazers_count":415,"open_issues_count":9,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-05T16:47:26.573Z","etag":null,"topics":["bug-bounty","bug-bounty-recon","hactoberfest","linux","package-manager","privelage-escalation","pwnwriter"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/hysp","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/pwnwriter.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,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"pwnwriter"}},"created_at":"2023-11-17T12:24:43.000Z","updated_at":"2024-11-02T08:23:37.000Z","dependencies_parsed_at":"2023-11-25T17:26:26.029Z","dependency_job_id":"ebc7ee43-79e4-4a8f-a740-c5da1450185b","html_url":"https://github.com/pwnwriter/hysp","commit_stats":null,"previous_names":["bytehunt/seren","pwnwriter/seren","pwnwriter/hysp"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwnwriter%2Fhysp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwnwriter%2Fhysp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwnwriter%2Fhysp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwnwriter%2Fhysp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pwnwriter","download_url":"https://codeload.github.com/pwnwriter/hysp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393095,"owners_count":20931804,"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":["bug-bounty","bug-bounty-recon","hactoberfest","linux","package-manager","privelage-escalation","pwnwriter"],"created_at":"2024-08-01T15:01:32.417Z","updated_at":"2025-04-05T19:33:25.161Z","avatar_url":"https://github.com/pwnwriter.png","language":"Rust","funding_links":["https://ko-fi.com/pwnwriter"],"categories":["Rust","bug-bounty","\u003ca name=\"package-manager\"\u003e\u003c/a\u003ePackage managers"],"sub_categories":[],"readme":"_**This project has been archived and is no longer maintained.**_\n\nWHY? \n\n_I recently started university and am currently busy with my personal work.\nAdditionally, I've begun using `nix`, and this project was initially a way for me to learn about package managers and their internals. Therefore, I am archiving this project and do not recommend anyone use it. However, feel free to borrow any parts of it for your own projects if you find them inspiring._\n\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://youtu.be/IOOzoeC-ZRQ?si=118OtD9c8u1Tr7JF\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/pwnwriter/hysp/images/hysp-rounded.png\" width=\"400\"\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003cb\u003e\u003cstrong\u003eAn independent package manager for \u003ccode\u003eunix and linux🌷\u003c/code\u003e\u003c/strong\u003e\u003c/b\u003e\n    \u003cbr\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://github.com/pwnwriter/hysp/releases\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/v/release/pwnwriter/hysp?style=flat\u0026labelColor=f38ba8\u0026color=585b70\u0026logo=GitHub\u0026logoColor=white\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/hysp/\"\u003e\n        \u003cimg src=\"https://img.shields.io/crates/v/hysp?style=flat\u0026labelColor=b4befe\u0026color=eba0ac\u0026logo=Rust\u0026logoColor=white\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/pwnwriter/hysp/actions?query=workflow%3A%22Continuous+Deployment%22\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/pwnwriter/hysp/build-app.yml?style=flat\u0026labelColor=eba0ac\u0026color=74c7ec\u0026label=check-hysp\u0026logo=GitHub%20Actions\u0026logoColor=white\"\u003e\n    \u003c/a\u003e\n  \u003ca href=\"https://github.com/pwnwriter/hysp/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-white.svg\" alt=\"MIT LICENSE\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png\" width=\"500\" /\u003e\n\u003c/p\u003e\n\n## Table of contents 📔\n\n* [`Why`](#why)\n* [`Features`](#features)\n* [`Installation`](#installation)\n* [`Hysp usages`](#usages)\n* [`Hosting custom repo`](#repo)\n* [`Packages`](#pkgs)\n* [`Support`](#support)\n* [`License`](#license)\n\n\u003ca name=\"why\"\u003e\u003c/a\u003e\n ## Why?? 🚩\n\nI am a **CTF player** [***(Capture the flag)*** ](https://en.wikipedia.org/wiki/Capture_the_flag_(cybersecurity)) who often finds myself without my main laptop in places that lack the tools I need. Some distros don't carry the packages I require and some doesn't keep them updated. That's why I created my own package manager :). It fetches tool binaries easily, ensuring I always have what I need to compete.\n\n\u003csup\u003e\u003csub\u003eDont touch my shrug\u003c/sub\u003e\u003c/sup\u003e\n\n\u003ca name=\"features\"\u003e\u003c/a\u003e\n ## Features ⚾\n1. **Versatile** : Hysp operates on (*nix) systems and various architectures (x86, aarch64_arm), providing flexibility for your needs.\n2. **Simple** : No prerequisites is needed for `Hysp` or `hysp-pkgs`. Install Hysp as a single binary, no need for Go, Rust, or any other dependencies. Saves space, storage, and time.\n3. **Customizable** : Pkg-Source can be self-hosted by anyone, allowing hysp to use your ***very own*** instead of the default source and local configuration as well. See [#Self hosting](https://github.com/pwnwriter/hysp#repo)\n4. **Statically compiled** : The default source [`metis-os/hysp-pkgs`](https://github.com/metis-os/hysp-pkgs)) has all statically compiled binaries, _only statically linked binaries that will run anywhere_. You can always host dynamic or whatever you want.\n5. **No Special Privileges** : [Hysp](https://github.com/pwnwriter/hysp) requires no special perms or privileges. It can run completely in userspace with all of its features.\n6. **Everything is open source** : Hysp uses github actions to build and ship the packages. On top of that it uses `sha` for varifying the binary.\n  \n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003e7. Security Considerations\u003c/code\u003e\u003c/summary\u003e\n  \u0026nbsp;\n\nIt is never a good idea to install random binaries from random sources. \n\nCheck these `HackerNews Discussions`\n\u003e - [A cautionary tale from the decline of SourceForge](https://news.ycombinator.com/item?id=31110206)\n\u003e - [Downloading PuTTY Safely Is Nearly Impossible (2014)](https://news.ycombinator.com/item?id=9577861)\n\n\n\u003e ```bash\n\u003e !# PKG Metadata\n\u003e # Everything is automated via Github Actions \u0026 Scripts\n\u003e Repo --\u003e https://github.com/metis-os/hysp-pkgs\n\u003e WorkFlows --\u003e https://github.com/metis-os/hysp-pkgs/tree/main/.github/workflows\n\u003e Scripts --\u003e https://github.com/metis-os/hysp-pkgs/tree/main/.github/scripts\n\u003e \n\u003e !# Upstream Source\n\u003e # Everything is automated via Github Actions \u0026 Build Scripts\n\u003e Repo --\u003e https://github.com/Azathothas/Toolpacks\n\u003e WorkFlows --\u003e https://github.com/Azathothas/Toolpacks/tree/main/.github/workflows\n\u003e Build Scripts --\u003e https://github.com/Azathothas/Toolpacks/tree/main/.github/scripts\n\u003e ```\n  \u003c/details\u003e\n\n\n\n\u003ca name=\"installation\"\u003e\u003c/a\u003e\n ## Installation 📩\n\n###### 🐤 From source\n\n  ```bash\n  git clone --depth=1 https://github.com/pwnwriter/hysp --branch=main\n  cd hysp\n  cargo build --release \n  ```\n  Then go to `release` dir and `./hysp` or move the `binary` to your any `$PATH` for instant access from anywhere.\n\n    \n  \u003cdetails\u003e \u003csummary\u003e\u003ccode\u003e🪄 Binary \u003c/code\u003e\u003c/summary\u003e\n    \u0026nbsp;\n\n  - *Manual* : You can directly download the [**binary**](https://github.com/pwnwriter/hysp/releases) of your arch and run it.\n  - *One liner* : Run this script, requires `jq`,`curl`, `tar` \u0026 `wget`\n   ```bash\nwget -qO- \"$(curl -qfsSL \"https://api.github.com/repos/pwnwriter/hysp/releases/latest\" | jq -r '.assets[].browser_download_url' | grep -Ei \"$(uname -m).*$(uname -s).*musl\" | grep -v \"\\.sha\")\" | tar -xzf - --strip-components=1\n./hysp -h\n```\n\u003c/details\u003e\n\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003e💮 using Cargo \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n\n- Using [crates.io](https://crates.io/crates/hysp)\n  ```bash\n  cargo install hysp\n  ```\n- Using [binstall](https://github.com/cargo-bins/cargo-binstall)\n  ```bash\n  cargo binstall hysp\n  ```\n\n    \u003e **NOTE:**\n    \u003e This requires a working setup of rust/cargo \u0026 binstall.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003e🚩 METIS Linux \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n  \n  ```bash\n  sudo/doas pacman -Sy hysp\n  ```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003e💢 Arch user repository \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n  \n  ```bash\n  paru/yay -S hysp-git\n  ```\n\n\u003c/details\u003e\n\n\n\u003ca name=\"usages\"\u003e\u003c/a\u003e\n ## Hysp usages 🎠\n \n***Firstly, if you intend to access the binaries installed via `hysp` over the system, you may want to...***\n\n ##### Setup path for hysp bin\n \n-  Add the following line to your shellrc. [ `zshrc`, `bashrc` ***etc***. ]\n\n    ```bash\n    export PATH=\"$HOME/.local/share/hysp/bin/:$PATH\" # While using default config, else use your own path to bin\n    ```\n \n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003eHelp menu\u003c/code\u003e\u003c/summary\u003e\n  \u0026nbsp;\n  \n  \n  ```bash\n  hysp |install|uninstall|search| -h # check for help menu\n  ```\n\n![screenshot_2023-12-13_19-51-00](https://github.com/pwnwriter/hysp/assets/90331517/01f15c0b-6b73-4e7c-ae74-5d010bef10f9)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003eInstalling packages \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n  \n  ```bash\n  hysp install -p \u003cfoo,bar,buzz\u003e # use --force to overwrite already installed binary, --quiet to supress console io\n  ```\n![screenshot_2023-12-13_19-55-36](https://github.com/pwnwriter/hysp/assets/90331517/79ce202a-23a4-4086-bd47-66edd0718345)\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003eRemoving packages \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n  \n  ```bash\n  hysp remove -p \u003cfoo,bar,buzz\u003e \n  ```\n\n![screenshot_2023-12-13_19-57-26](https://github.com/pwnwriter/hysp/assets/90331517/84841cf4-0693-4cbf-a2cc-b46869596b94)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003eSearch for available pkgs \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n  \n  ```bash\n  hysp search -p \u003cpkg\u003e \n  ```\n\n- Raw mode (default)\n\n![screenshot_2023-12-13_19-58-22](https://github.com/pwnwriter/hysp/assets/90331517/c72bfd75-b246-4b9d-82b9-0c11e399c947)\n\n- Database mode\n\n![screenshot_2023-12-13_19-59-55](https://github.com/pwnwriter/hysp/assets/90331517/66e1a7f2-9815-41c2-8da5-8e0144789d38)\n\n- Fuzzy mode\n\n![screenshot_2023-12-13_20-00-34](https://github.com/pwnwriter/hysp/assets/90331517/0404c9d9-2049-459e-b09d-253dfbe30a4d)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003eChecking configuration health \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n  \n  ```bash\n hysp health\n  ```\n\n![screenshot_2023-12-13_20-01-34](https://github.com/pwnwriter/hysp/assets/90331517/2375116f-bda1-4dd9-96f9-48f04fa8bc47)\n\n\u003c/details\u003e\n\n##### Numerous other options exist. Consider installing Hysp and checking it out, wouldn't you?\n\n\u003ca name=\"repo\"\u003e\u003c/a\u003e\n ## Hosting custom repo 💾\n\n- Hysp provies the following configuration, which can be overwritten by defining a `config file` in `~/.config/hysp/config.toml`\n\n  ```toml\n  [source]\n  remote = \"https://raw.githubusercontent.com/metis-os/hysp-pkgs/main/data/x86_64\"\n  metadata =\"https://raw.githubusercontent.com/metis-os/hysp-pkgs/main/data/metadata.toml\"\n  aarch = \"Architecture\"\n\n  [local]   \n  home=\"/home/user/.local/share/hysp\"\n  bin=\"/home/user/.local/share/hysp/bin/\" \n  data=\"/home/user/.local/share/hysp/data/\" \n\n  ```\n- Explanation \n\n|  Name       | Description                        | Default                                            |\n|-------------|------------------------------------|----------------------------------------------------|\n|  `remote`   | Package repository                 | [***`metis-os/hysp-pkgs`***](https://github.com/metis-os/hysp-pkgs) |\n|  `metadata` | Available pkg info                 | [***`metis-os/hysp-pkgs/metadata.toml`***](https://raw.githubusercontent.com/metis-os/hysp-pkgs/main/data/metadata.toml)|\n|  `home`     | Home for `hysp`                    | ***`hysp`***                               |\n|  `bin`      | Directory to save the binaries     | ***`~/.local/share/hysp/bin`***            |\n|  `data`     | Directory to save pkg data         | ***`~/.local/share/hysp/data`***           |\n|  `aarch`    | Your system Architecture           | Only supported ***`X86_64,aarch64`***      |\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003e🎄 Tree view of the repo \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n\n  ```bash\n.\n├── available.toml # Storing available pkgs info (Optional)\n├── data\n│  └── foo.toml # where the package data are stored (needed)\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003e📂 Sample pkg \u003c/code\u003e\u003c/summary\u003e\n\u0026nbsp;\n\n  ```bash\n[bin]\nname = \"$BIN\" # Name of the pkg to be installed as\n\n[package]\narchitecture = \"x86_64\" # Your aarchitecture \nname = \"$BIN\" # Your package name\ndescription = \"$DESCRIPTION\" # Description\nauthor = \"$AUTHOR\" # Author \nrepo = \"$REPO_URL\" \nstars = \"${STARS}\"\nversion = \"$PKG_VERSION\"\nupdated = \"$PKG_RELEASED\"\nsize = \"$SIZE\"\nsha = \"$SHA\" \nsource = \"$SOURCE_URL\" # Source of the binary wherever it's hosted\nlanguage = \"$LANGUAGE\"\nlicense = \"$LICENSE\"\n\n[package.conditions]\nconflicts  = [\"$BIN\"] # Conflictions \nrequires = [] # Dependencies \n\n[package.metadata]\nkeywords = $TOPICS\ncategories = [\"Utilities\"]\n  ```\n\n\u003c/details\u003e\n\n\u003ca name=\"pkgs\"\u003e\u003c/a\u003e\n ## Packages whuat?? 📦\nThere is a list of packages available in [*`metis-os/hysp-pkgs`*](https://github.com/metis-os/hysp-pkgs) . You can confidently utilize the default configuration without any hesitation. However, if you prefer to host your own packages, you have the option to do so by creating your own custom configuration file under ***`~/.config/hysp/config.toml`***. See [`#repo`](https://github.com/pwnwriter/hysp#repo) \n\n\n\u003ca name=\"support\"\u003e\u003c/a\u003e\n ## Support 💌\n\n I am a student currently attending university. I like working for *Open Source* in my free time. If you find my tool or work beneficial, please consider supporting me via [*KO-FI*](https://ko-fi.com/pwnwriter) or [*ESEWA*](https://metislinux.org/docs/donate)* (***Nepal only***), Or by leaving a star ⭐ ; I'll appreciate your action :)\n\n\u003ca name=\"license\"\u003e\u003c/a\u003e\n ## License ㊙️\n\n Everything is license under the [`MIT`](https://raw.githubusercontent.com/pwnwriter/hysp/main/LICENSE) except for the packages... \n They hold their own livess :oOO\n \n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true\" /\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003eCopyright \u0026copy; 2023\u003ca href=\"https://pwnwriter.xyz\" target=\"_blank\"\u003e pwnwriter xyz \u003c/a\u003e ☘️\u003c/p\u003e \n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpwnwriter%2Fhysp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpwnwriter%2Fhysp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpwnwriter%2Fhysp/lists"}