{"id":18439179,"url":"https://github.com/wsh032/aria2-wheel","last_synced_at":"2025-04-07T21:32:14.492Z","repository":{"id":211823697,"uuid":"728560499","full_name":"WSH032/aria2-wheel","owner":"WSH032","description":"python wheel for aria2 static build","archived":false,"fork":false,"pushed_at":"2025-04-07T19:36:56.000Z","size":49,"stargazers_count":7,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T20:35:21.404Z","etag":null,"topics":["aria2","aria2c","pypi","python","static-build","wheel"],"latest_commit_sha":null,"homepage":"https://wsh032.github.io/aria2-wheel/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WSH032.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"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}},"created_at":"2023-12-07T07:50:28.000Z","updated_at":"2024-12-30T22:28:50.000Z","dependencies_parsed_at":"2024-11-06T06:27:25.944Z","dependency_job_id":"335f9bb9-b268-4efa-a7c8-a741296f630e","html_url":"https://github.com/WSH032/aria2-wheel","commit_stats":null,"previous_names":["wsh032/aria2-wheel"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WSH032%2Faria2-wheel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WSH032%2Faria2-wheel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WSH032%2Faria2-wheel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WSH032%2Faria2-wheel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WSH032","download_url":"https://codeload.github.com/WSH032/aria2-wheel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247732659,"owners_count":20986898,"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":["aria2","aria2c","pypi","python","static-build","wheel"],"created_at":"2024-11-06T06:23:39.358Z","updated_at":"2025-04-07T21:32:12.396Z","avatar_url":"https://github.com/WSH032.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- The content will be also use in `docs/index.md` by `pymdownx.snippets` --\u003e\n\u003c!-- Do not use any **relative link** and  **GitHub-specific syntax** ！--\u003e\n\u003c!-- Do not rename or move the file --\u003e\n\n# Aria2 Wheel\n\n\u003cp align=\"center\"\u003e\n    \u003cem\u003epython wheel for aria2 static build\u003c/em\u003e\n\u003c/p\u003e\n\n| | |\n| - | - |\n| CI/CD   | [![CI: lint-test]][CI: lint-test#link] [![pre-commit.ci status]][pre-commit.ci status#link] \u003cbr\u003e [![CI: docs]][CI: docs#link] [![CI: publish]][CI: publish#link]  |\n| Code    | [![codecov]][codecov#link] [![Code style: black]][Code style: black#link] [![Ruff]][Ruff#link] [![Checked with pyright]][Checked with pyright#link] |\n| Package | [![PyPI - Version]][PyPI#link] [![PyPI - Downloads]][PyPI#link] [![PyPI - Python Version]][PyPI#link] |\n| Meta    | [![Hatch project]][Hatch project#link] [![GitHub License]][GitHub License#link] |\n\n---\n\nDocumentation: \u003chttps://wsh032.github.io/aria2-wheel/\u003e\n\nSource Code: \u003chttps://github.com/WSH032/aria2-wheel/\u003e\n\n---\n\n## Introduction\n\n[aria2](https://github.com/aria2/aria2) is a lightweight multi-protocol \u0026 multi-source command-line download utility.\n\nIt's easy to install aria2 on Linux (`apt install aria2`), however it's not easy to install aria2 on Windows (at least can't one-click to install).\n\nSo I build this python wheel to binding aria2 static build. You can install it by `pip` from `pypi` on Windows.\n\nNow, we support:\n\n- [x] manylinux_2_17_x86_64\n- [x] musllinux_1_1_x86_64\n- [x] manylinux_2_17_aarch64\n- [x] musllinux_1_1_aarch64\n- [x] win_amd64\n- [x] win32\n\n## Features\n\n`aria2-wheel` internally bundles the aria2c binary and utilizes the [entry_point](https://setuptools.pypa.io/en/latest/userguide/entry_point.html#console-scripts) technology.\n\nTherefore, it does not modify your system's `PATH` environment variable, and there is no need for `sudo` permissions.\n\nYou can completely uninstall it by running `pip uninstall aria2`.\n\n## Credits\n\n- [aria2](https://github.com/aria2/aria2)\n    - This project is not `aria2` official project.\n- [aria2-static-build](https://github.com/abcfy2/aria2-static-build)\n    - The bound aria2 executable file directly comes from `aria2-static-build` project, and `aria2-wheel` assumes no responsibility for your use.\n    - The license of `aria2-wheel` project is consistent with `aria2-static-build` project.\n\ncheck `hatch_build.py` and `.github/workflows/publish.yml` to know how we build the wheel.\n\n## Install\n\n```shell\npip install aria2\n```\n\nor install in global environment with [pipx](https://pypa.github.io/pipx/)\n\n```shell\n# https://pypa.github.io/pipx/\npipx install aria2\n```\n\n## Usage\n\n### cli usage\n\nAll api is the same as [aria2](https://aria2.github.io/manual/en/html/aria2c.html)\n\n```shell\naria2c --help\n```\n\nor\n\n```shell\npython -m aria2c --help\n```\n\n`ctrl + c` , `ctrl + break` , `kill \u003cpid\u003e` will work well, even exit code.\n\n### [subprocess.Popen](https://docs.python.org/3/library/subprocess.html)\n\nDo not shutdown the subprocess by `Popen.terminate()` or `Popen.kill()`, which can not shutdown aria2 subprocess properly.\n\nUse following code instead:\n\n```python\nimport os\nimport signal\nimport subprocess\nimport sys\nfrom subprocess import Popen\nfrom typing import TypedDict\n\n\nclass Win32PopenKwargs(TypedDict):\n    \"\"\"Popen kwargs for Windows.\"\"\"\n\n    creationflags: int\n\n\nclass UnixPopenKwargs(TypedDict):\n    \"\"\"Popen kwargs for Unix.\"\"\"\n\n    start_new_session: bool\n\n\npopen_kwargs = (\n    UnixPopenKwargs(start_new_session=True)\n    if sys.platform != \"win32\"\n    else Win32PopenKwargs(creationflags=subprocess.CREATE_NEW_PROCESS_GROUP)\n)\n\n\nwith Popen(args=(\"aria2c\", \"--enable-rpc\"), **popen_kwargs) as p:\n    try:\n        # Do whatever you want here.\n        ...\n    finally:\n        # following code can shutdown the subprocess gracefully.\n        if sys.platform == \"win32\":\n            # https://stackoverflow.com/questions/44124338/trying-to-implement-signal-ctrl-c-event-in-python3-6\n            os.kill(p.pid, signal.CTRL_BREAK_EVENT)\n        else:\n            os.killpg(os.getpgid(p.pid), signal.SIGINT)\n```\n\n## development\n\n- If you find any issues, please don't hesitate to [open an issue](https://github.com/WSH032/aria2-wheel/issues).\n- If you need assistance, feel free to [start a discussion](https://github.com/WSH032/aria2-wheel/discussions).\n- Follow our `CONTRIBUTING.md`, [PR Welcome!](https://github.com/WSH032/aria2-wheel/pulls)\n- Security 😰❗: We value any security vulnerabilities, [please report to us privately](https://github.com/WSH032/aria2-wheel/security), pretty appreciated for that.\n\nEnglish is not the native language of the author (me), so if you find any areas for improvement in the documentation, your feedback is welcome.\n\nIf you think this project helpful, consider giving it a star ![GitHub Repo stars](https://img.shields.io/github/stars/wsh032/aria2-wheel?style=social), which makes me happy. :smile:\n\n\u003c!-- link --\u003e\n\n\u003c!-- ci/cd --\u003e\n[CI: lint-test]: https://github.com/WSH032/aria2-wheel/actions/workflows/lint-test.yml/badge.svg\n[CI: lint-test#link]: https://github.com/WSH032/aria2-wheel/actions/workflows/lint-test.yml\n[CI: docs]: https://github.com/WSH032/aria2-wheel/actions/workflows/docs.yml/badge.svg\n[CI: docs#link]: https://github.com/WSH032/aria2-wheel/actions/workflows/docs.yml\n[CI: publish]: https://github.com/WSH032/aria2-wheel/actions/workflows/publish.yml/badge.svg\n[CI: publish#link]: https://github.com/WSH032/aria2-wheel/actions/workflows/publish.yml\n[pre-commit.ci status]: https://results.pre-commit.ci/badge/github/WSH032/aria2-wheel/main.svg\n[pre-commit.ci status#link]: https://results.pre-commit.ci/latest/github/WSH032/aria2-wheel/main\n\u003c!-- code --\u003e\n[Code style: black]: https://img.shields.io/badge/code%20style-black-000000.svg\n[Code style: black#link]: https://github.com/psf/black\n[GitHub License]: https://img.shields.io/github/license/WSH032/aria2-wheel?color=9400d3\n[GitHub License#link]: https://github.com/WSH032/aria2-wheel/blob/main/LICENSE\n[Ruff]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\n[Ruff#link]: https://github.com/astral-sh/ruff\n[Checked with pyright]: https://microsoft.github.io/pyright/img/pyright_badge.svg\n[Checked with pyright#link]: https://microsoft.github.io/pyright\n\u003c!-- package --\u003e\n[PyPI - Version]: https://img.shields.io/pypi/v/aria2?logo=pypi\u0026label=PyPI\u0026logoColor=gold\n[PyPI - Downloads]: https://img.shields.io/pypi/dm/aria2?color=blue\u0026label=Downloads\u0026logo=pypi\u0026logoColor=gold\n[PyPI - Python Version]: https://img.shields.io/pypi/pyversions/aria2?logo=python\u0026label=Python\u0026logoColor=gold\n[PyPI#link]: https://pypi.org/project/aria2\n\u003c!-- meta --\u003e\n[Hatch project]: https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg\n[Hatch project#link]: https://github.com/pypa/hatch\n[codecov]: https://codecov.io/gh/WSH032/aria2-wheel/graph/badge.svg?token=62QQU06E8X\n[codecov#link]: https://codecov.io/gh/WSH032/aria2-wheel\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwsh032%2Faria2-wheel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwsh032%2Faria2-wheel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwsh032%2Faria2-wheel/lists"}