{"id":13611725,"url":"https://github.com/chawyehsu/hok","last_synced_at":"2025-04-09T04:01:56.172Z","repository":{"id":86967228,"uuid":"332956656","full_name":"chawyehsu/hok","owner":"chawyehsu","description":"CLI reimplementation of Scoop in Rust","archived":false,"fork":false,"pushed_at":"2024-10-10T14:43:47.000Z","size":784,"stargazers_count":140,"open_issues_count":4,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-14T10:21:48.105Z","etag":null,"topics":["package-management","package-manager","rust","scoop","windows"],"latest_commit_sha":null,"homepage":"https://docs.rs/libscoop","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chawyehsu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":{"github":"chawyehsu","custom":"https://github.com/chawyehsu/sponsors"}},"created_at":"2021-01-26T03:13:05.000Z","updated_at":"2024-10-13T04:37:50.000Z","dependencies_parsed_at":"2024-01-14T06:50:32.893Z","dependency_job_id":"e7583d07-aea9-4cc6-b6c1-b6b580870b1d","html_url":"https://github.com/chawyehsu/hok","commit_stats":null,"previous_names":["chawyehsu/hok","chawyehsu/scoop-rs"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chawyehsu%2Fhok","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chawyehsu%2Fhok/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chawyehsu%2Fhok/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chawyehsu%2Fhok/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chawyehsu","download_url":"https://codeload.github.com/chawyehsu/hok/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247974719,"owners_count":21026742,"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":["package-management","package-manager","rust","scoop","windows"],"created_at":"2024-08-01T19:02:02.068Z","updated_at":"2025-04-09T04:01:56.149Z","avatar_url":"https://github.com/chawyehsu.png","language":"Rust","funding_links":["https://github.com/sponsors/chawyehsu","https://github.com/chawyehsu/sponsors"],"categories":["Rust"],"sub_categories":[],"readme":"# hok\n\n\u003e Hok is a CLI implementation of [Scoop](https://scoop.sh/) in Rust\n\n[![cicd][cicd-badge]][cicd]\n[![release][release-badge]][releases]\n[![crates-svg]][crates-url]\n[![license][license-badge]](LICENSE)\n[![downloads][downloads-badge]][releases]\n[![docs-svg]][docs-url]\n\n[简体中文]\n\n## Install\n\n🚧 **CAVEAT**: Under heavy development, interfaces may change without notice.\n\nAssuming you have the original Scoop installed, simply run:\n\n```sh\nscoop bucket add dorado https://github.com/chawyehsu/dorado\nscoop install dorado/hok\n```\n\nNote this will add the `dorado` bucket I maintain to install Hok. Hok is experimental and it's currently only available in that bucket.\n\n## Commands\n\nThe command line interface is similar to Scoop.\n\n```raw\n$ hok help\nHok is a CLI implementation of Scoop in Rust\n\nUsage: hok.exe \u003cCOMMAND\u003e\n\nCommands:\n  bucket     Manage manifest buckets\n  cache      Package cache management\n  cat        Inspect the manifest of a package\n  cleanup    Cleanup apps by removing old versions\n  config     Configuration management\n  hold       Hold package(s) to disable changes\n  home       Browse the homepage of a package\n  info       Show package(s) basic information\n  install    Install package(s)\n  list       List installed package(s)\n  search     Search available package(s)\n  unhold     Unhold package(s) to enable changes\n  uninstall  Uninstall package(s)\n  update     Fetch and update subscribed buckets\n  upgrade    Upgrade installed package(s)\n  help       Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n\nType 'hok help \u003ccommand\u003e' to get help for a specific command.\n```\n\n## Development\n\nPrerequisites: Git, Rust\n\n```sh\n# clone the repo\ngit clone https://github.com/chawyehsu/hok\ncd hok\n# build\ncargo build\n# run and test\ncargo run -- help\n```\n\n## Performance\n\nHok (also the libscoop backend) aims to provide a faster yet powerful alternative\nto the original Scoop. Here are some random benchmarks captured in the Windows\nSandbox environment on my PC (AMD Ryzen 5 2600, 32G RAM, Windows 10).\n\n```sh\n# versions:\nhok/dorado 0.1.0-beta.6\nscoop-search/main 1.5.0\nsfsu/extras 1.14.0\n# Benchmarking scoop bucket list\nBenchmark 1: scoop bucket list\n  Time (mean ± σ):      5.610 s ±  0.627 s    [User: 6.573 s, System: 3.520 s]\n  Range (min … max):    4.784 s …  7.063 s    10 runs\n\nBenchmark 2: hok bucket list\n  Time (mean ± σ):     159.4 ms ±  28.3 ms    [User: 86.4 ms, System: 175.2 ms]\n  Range (min … max):   140.0 ms … 252.1 ms    18 runs\n\nSummary\n  hok bucket list ran\n   35.19 ± 7.38 times faster than scoop bucket list\n# Benchmarking scoop list\nBenchmark 1: scoop list\n  Time (mean ± σ):      3.577 s ±  0.043 s    [User: 4.919 s, System: 2.142 s]\n  Range (min … max):    3.524 s …  3.678 s    10 runs\n\nBenchmark 2: sfsu list\n  Time (mean ± σ):      58.3 ms ±  30.8 ms    [User: 18.8 ms, System: 44.2 ms]\n  Range (min … max):    39.1 ms … 234.1 ms    50 runs\n\nBenchmark 3: hok list\n  Time (mean ± σ):      48.7 ms ±  53.2 ms    [User: 13.4 ms, System: 41.7 ms]\n  Range (min … max):    31.8 ms … 412.4 ms    62 runs\n\nSummary\n  hok list ran\n    1.20 ± 1.45 times faster than sfsu list\n   73.39 ± 80.11 times faster than scoop list\n# Benchmarking scoop search (sqlite_cache enabled)\nBenchmark 1: scoop search google\n  Time (mean ± σ):      3.771 s ±  0.031 s    [User: 5.134 s, System: 2.085 s]\n  Range (min … max):    3.725 s …  3.830 s    10 runs\n\nBenchmark 2: scoop-search google\n  Time (mean ± σ):     178.5 ms ±  14.2 ms    [User: 210.8 ms, System: 850.4 ms]\n  Range (min … max):   149.4 ms … 206.8 ms    17 runs\n\nBenchmark 3: sfsu search google\n  Time (mean ± σ):      73.7 ms ±  30.1 ms    [User: 49.3 ms, System: 85.0 ms]\n  Range (min … max):    52.6 ms … 202.3 ms    36 runs\n\nBenchmark 4: hok search google\n  Time (mean ± σ):      73.0 ms ±  10.2 ms    [User: 44.9 ms, System: 93.4 ms]\n  Range (min … max):    63.0 ms … 109.3 ms    25 runs\n\nSummary\n  hok search google ran\n    1.01 ± 0.44 times faster than sfsu search google\n    2.44 ± 0.39 times faster than scoop-search google\n   51.63 ± 7.25 times faster than scoop search google\n```\n\nYou may run the benchmarks yourself using provided benchmark scripts in the\n[`scripts` directory]. Results may vary on different environments, feel free\nto share yours to help us improve the project.\n\n## License\n\n**hok** © [Chawye Hsu](https://github.com/chawyehsu). Released under the [Apache-2.0](LICENSE) license.\nFor licenses of sub crates, see [COPYING](COPYING).\n\n\u003e [Blog](https://chawyehsu.com) · GitHub [@chawyehsu](https://github.com/chawyehsu) · Twitter [@chawyehsu](https://twitter.com/chawyehsu)\n\n[cicd-badge]: https://github.com/chawyehsu/hok/workflows/CICD/badge.svg\n[cicd]: https://github.com/chawyehsu/hok/actions/workflows/cicd.yml\n[release-badge]: https://img.shields.io/github/v/release/chawyehsu/hok\n[releases]: https://github.com/chawyehsu/hok/releases/latest\n[crates-svg]: https://img.shields.io/crates/v/libscoop.svg\n[crates-url]: https://crates.io/crates/libscoop\n[license-badge]: https://img.shields.io/github/license/chawyehsu/hok\n[downloads-badge]: https://img.shields.io/github/downloads/chawyehsu/hok/total\n[docs-svg]: https://docs.rs/libscoop/badge.svg\n[docs-url]: https://docs.rs/libscoop\n[简体中文]: https://chawyehsu.com/blog/reimplementing-scoop-in-rust\n[`scripts` directory]: scripts/benchmark/README.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchawyehsu%2Fhok","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchawyehsu%2Fhok","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchawyehsu%2Fhok/lists"}